首页 > 语言 > JavaScript > 正文

Javascript中实现String.startsWith和endsWith方法

2024-05-06 16:21:58
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Javascript中实现String.startsWith和endsWith方法,这两个很好用的方法在JS中没有,本文就自己编码实现了这两个方法,需要的朋友可以参考下

在操作字符串(String)类型的时候,startsWith(anotherString)和endsWith(anotherString)是非常好用的方法。其中startsWith判断当前字符串是否以anotherString作为开头,而endsWith则是判断是否作为结尾。举例:

 

 
  1. "abcd".startsWith("ab"); // true 
  2. "abcd".startsWith("bc"); // false 
  3. "abcd".endsWith("cd"); // true 
  4. "abcd".endsWith("e"); // false 
  5. "a".startsWith("a"); // true 
  6. "a".endsWith("a"); // true 

但不幸的是,Javascript中没有自带这两个方法,需要的话只能自己写。当然写起来也不难就是了。

 

 
  1. if (typeof String.prototype.startsWith != 'function') { 
  2. String.prototype.startsWith = function (prefix){ 
  3. return this.slice(0, prefix.length) === prefix; 
  4. }; 

String.slice()和String.substring()类似,都是获得一段子串,但有评测说slice的效率更高。这里不使用indexOf()的原因是,indexOf会扫描整个字符串,如果字符串很长,indexOf的效率就会很差。

 

 
  1. if (typeof String.prototype.endsWith != 'function') { 
  2. String.prototype.endsWith = function(suffix) { 
  3. return this.indexOf(suffix, this.length - suffix.length) !== -1; 
  4. }; 

和startsWith不一样,endsWith中可以使用indexOf。原因是它只扫描了最后的一段字符串,而比起slice的优势是它不用复制字符串,直接扫描即可,所以效率更高。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选