Javascript中实现String.startsWith和endsWith⽅法
在操作字符串(String)类型的时候,startsWith(anotherString)和endsWith(anotherString)是⾮常好⽤的⽅法。其中startsWith 判断当前字符串是否以anotherString作为开头,⽽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 dsWith != 'function') {
dsWith = function(suffix) {字符串截取方法slice
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
和startsWith不⼀样,endsWith中可以使⽤indexOf。原因是它只扫描了最后的⼀段字符串,⽽⽐起slice的优势是它不⽤复制字符串,直接扫描即可,所以效率更⾼。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论