Javascript中实现String.startsWith和endsWith方法
作者:bea
在操作字符串(String)类型的时候,startsWith(anotherString)和endsWith(anotherString)是非常好用的方法。其中startsWith判断当前字符串是否以anotherString作为开头,而endsWith则是判断是否作为结尾。举例: "abcd".startsWith("ab"); // true"abcd".startsWith("bc"); // false"abcd".endsWith("cd"); // true
在操作字符串(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 String.prototype.endsWith != 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
和startsWith不一样,endsWith中可以使用indexOf。原因是它只扫描了最后的一段字符串,而比起slice的优势是它不用复制字符串,直接扫描即可,所以效率更高。
有用 | 无用
"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;
};
}
和startsWith不一样,endsWith中可以使用indexOf。原因是它只扫描了最后的一段字符串,而比起slice的优势是它不用复制字符串,直接扫描即可,所以效率更高。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery实现首页图片淡入淡出效果的方法
- 简介JavaScript中的getUTCFullYear()方法的使用
- javascript中一些util方法汇总
- Javascript中的getUTCDay()方法使用详解
- 在JavaScript中操作时间之getUTCDate()方法的使用
- JavaScript中的getTimezoneOffset()方法使用详解
- ajax读取数据后使用jqchart显示图表的方法
- jquery获取当前元素索引值用法实例
- jQuery实现checkbox全选的方法
- JavaScript中的getTime()方法使用详解
- 简介JavaScript中的getSeconds()方法的使用
- 在JavaScript中操作时间之getMonth()方法的使用
- 在JavaScript中用getMinutes()方法返回指定的分时刻
- JavaScript中的getMilliseconds()方法使用详解
- 在JavaScript中处理时间之getHours()方法的使用
- JavaScript中计算网页中某个元素的位置
- JavaScript实现强制重定向至HTTPS页面
- 详解JavaScript中getFullYear()方法的使用
- JavaScript中判断函数、变量是否存在