Javascript中实现String.startsWith和endsWith方法_javascript技巧
程序员文章站
2022-04-12 13:13:24
...
在操作字符串(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的优势是它不用复制字符串,直接扫描即可,所以效率更高。
推荐阅读
-
JavaScript实现京东购物放大镜和选项卡效果的方法分析
-
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
-
JavaScript编程开发中jquery搜索框效果实现方法
-
使用JavaScript实现node.js中的path.join方法
-
在JavaScript应用中实现延迟加载的方法
-
Javascript中类式继承和原型式继承的实现方法和区别之处
-
JavaScript使用原型和原型链实现对象继承的方法详解
-
详解Javascript百度地图接口开发文档中的类和方法
-
android中WebView和javascript实现数据交互实例
-
JavaScript中递归实现的方法及其区别