なんで似ているメソッドが3つもあるのか不明だけど、整理する意味でちゃんと書いておく。
- String.prototype.slice (start, end)
endは省略でき、その場合は末尾を指定したのと同様になる。
負数の場合は末尾からのインデックス値となる。
'0123456789'.slice(2, 8); // 234567 '0123456789'.slice(2); // 23456789 '0123456789'.slice(-5, -2); // 567
- String.prototype.substring (start, end)
endは省略できない。
負数の場合は0に置き換わる。
'0123456789'.substring(2, 8); // 234567 '0123456789'.substring(-5, 2); // 01
- String.prototype.substr (start, length)
lengthは省略でき、その場合は元の文字列の末尾まで指定したのと同様になる。
startが負数の場合は0に置き換わる。lengthが負数の場合は・・・不明?
'0123456789'.substr(2, 8); // 23456789 '0123456789'.substr(2); // 23456789 '0123456789'.substr(-5, 2); // 56これら3メソッドはJavaScriptの仕様であるECMA262にちゃんと載っている。
- 15.5.4.13 String.prototype.slice (start, end)
- 15.5.4.15 String.prototype.substring (start, end)
- B.2.3 String.prototype.substr (start, length)
0 件のコメント:
コメントを投稿