JavascriptでString.starts Withとends Withを実現する方法
1235 ワード
文字列タイプを操作する際には、starts WithとendsWithが非常に使いやすい方法です.ここでstarts Withは現在の文字列がanothersStringで始まるかどうかを判断し、endswithは最後とするかを判断する.例:
"abcd".startsWith("ab"); // true
"abcd".startsWith("bc"); // false
"abcd".endsWith("cd"); // true
"abcd".endsWith("e"); // false
"a".startsWith("a"); // true
"a".endsWith("a"); // true
残念なことに、Javascriptにはこの二つの方法がありません.必要なら自分で書くしかないです.もちろん書くのも難しくないです.
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (prefix){
return this.slice(0, prefix.length) === prefix;
};
}
String.slice()とString.substring()は似ています.同じように一段の列を獲得していますが、sliceの効率がより高いという評価があります.ここでindexOfを使わない理由は、indexOfは文字列全体をスキャンします.文字列が長いとindexOfの効率が悪くなります.
if (typeof String.prototype.endsWith != 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
starts Withとは違って、endsWithではindexOfが使用できます.なぜなら、最後の文字列だけをスキャンしたからです.sliceよりも文字列をコピーせずに直接スキャンすればいいという利点があります.