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

Pocket

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);
}

[ 2015年6月30日 | カテゴリー: JavaScript | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報