我在做js测试的时候使用了startsWith函数,但是并不是所有的浏览器都可以使用,所以一般要重写这个函数,具体用法可以稍微总结一下。在某些浏览器中它是未定义的,所以我们可以这样处理它if(typeofString.prototype.startsWith!='function'){String.prototype.startsWith=function(prefix){returnthis.slice(0,prefix.length)===prefix;};}这个需要放在页面刚要加载的函数里面,否则是不起作用的。还有一种是直接重写但是我没有测试过,大家可以测试一下:String.prototype.startWith=function(str){if(str==null||str==””||this.length==0||str.length>this.length)returnfalse;if(this.substr(0,str.length)==str)returntrue;elsereturnfalse;returntrue;}有人说js中没有startsWith和endWith函数,但是就算不是说有些浏览器还是可以用的,但是还是希望重写一下兼容性。if(typeofString.prototype.endsWith!='function'){String.prototype.endsWith=function(suffix){returnthis.indexOf(suffix,this.length-suffix.length)!=??=-1;};}使用正则表达式实现startWith和endWith效果函数String.prototype.startWith=function(str){varreg=newRegExp("^"+str);returnreg.test(this);}//测试ok,直接用str.endWith("abc")方法可以调用String.prototype.endWith=function(str){varreg=newRegExp(str+"$");returnreg.test(this);}上面文章说的startsWith函数在js中不能用任何浏览器兼容性问题是我和大家分享的所有内容。希望能给大家一个参考。
