JavaScriptで文字列の右からn文字目を取得する

JavaScript

JavaScriptで文字列の一部分を取り出す場合にはsliceというメソッドを使います。
「text = “0123456789”」の左から3文字目を取得するにはsliceを使って「text.slice(3, 4)」とします。「3」になります。
なお文字は0から数えることとします。
一般に左からn文字目を取得するには「text.slice(n, n + 1)」とします。

逆に右から3文字目を取得するには「text.slice(-4, -5)」とします。「6」になります。
一般に右からn文字目を取得するには「text.slice(-n – 1, -n)」とします。
シンプルでいいのですが問題があります。
右から0文字目、つまり右端の場合「text.slice(-1, 0)」とすると取得できません。
「text.slice(-1)」とする必要があります。

これを関数で表わすと次のようになります。場合分けが必要になり少し面倒です。

function fromRight_slice(text, n) {
  if(n == 0) {
    return text.slice(-1);
  } else {
    return text.slice(-n - 1, -n);
  }
}

次にsubstrを使う方法を示します。文字列の長さを求めて左からの位置を求めています。場合分けが不要です。

function fromRight_substr(text, n) {
  return text.substr(text.length - n - 1, 1);
}

ついでですが、左からn文字目を取得する関数は次の通りです。

function fromLeft_substr(text, n) {
  return text.substr(n, 1);
}

コメント

タイトルとURLをコピーしました