JavaScriptには文字列からその一部を切り出すメソッドがいくつかあります。
sliceとsubstringとsubstrです。
文字列.slice(最初の位置,最初の位置+文字数)
文字列.substring(最初の位置,最初の位置+文字数)
文字列.substr(最初の位置,文字数)
sliceとsubstringは同じです。書き換えると「文字列.slice(最初の位置,最後の位置+1)」となります。ちょっと分かりにくいかもしれません。
いくつかのパターンを試してみます。IEで確認しました。
文字列”abcdefg”に対してメソッドを適用します。
第1引数 | 第2引数 | slice | substring | substr |
---|---|---|---|---|
2 | 5 | cde | cde | cdefg |
2 | なし | cdefg | cdefg | cdefg |
-2 | なし | fg | abcdefg | abcdefg |
第2引数を省略すると最後まで取り出します。
第1引数を負の数にするとsliceの場合だけ末尾から取り出します。これが便利です。
sliceは文字列に対するメソッドだけでなく、配列に対するメソッドでもあります。
文字列でも配列でも同じように動作するので、まずsliceを覚えれば充分です。
詳しく見てみます。
「t=”abcdefg”」としてsliceを適用する場合です。
a | b | c | d | e | f | g |
---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
-7 | -6 | -5 | -4 | -3 | -2 | -1 |
t.slice(2,6)→「cdef」
t.slice(2,-1)→「cdef」
t.slice(-5,6)→「cdef」
t.slice(-5,-1)→「cdef」
引数を変えてみましたが、結果は同じになります。
マイナスの場合も、引数に「最初の位置」と「最後の位置の右隣」をセットすればよいことが分かります。
t.slice(3)→「defg」
t.slice(-4)→「defg」
第2引数を省略する場合も同じです。
コメント