这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇浅谈 js 中 startsWith 函数不能在任何浏览器兼容的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在做 js 测试的时候用到了 startsWith 函数,但是他并不是每个浏览器都有的,所以我们一般要重写一下这个函数,具体的用法可以稍微总结一下
在有些浏览器中他是 undefined 所以我们可以这样的处理一下、
- if (typeof String.prototype.startsWith != 'function') {
- String.prototype.startsWith = function (prefix){
- return this.slice(0, prefix.length) === prefix;
- };
- }
这个需要放在页面刚要加载完成的函数里,不然不好使。
还有一种直接重写 不过我没测试过,你们可以测试一下:
- String.prototype.startWith=function(str){
- if(str==null||str==""||this.length==0||str.length>this.length)
- return false;
- if(this.substr(0,str.length)==str)
- return true;
- else
- return false;
- return true;
- }
有的说 js 中没有 startsWith 和 endWith 这两个函数不过就算不声明有些浏览器他还是可以用的,不过为了兼容性还是希望重写一下。
- if (typeof String.prototype.endsWith != 'function') {
- String.prototype.endsWith = function(suffix) {
- return this.indexOf(suffix, this.length - suffix.length) !== -1;
- };
- }
采用正则表达式实现 startWith、endWith 效果函数
- String.prototype.startWith=function(str){
- var reg=new RegExp("^"+str);
- return reg.test(this);
- }
- //测试ok,直接使用str.endWith("abc")方式调用即可
- String.prototype.endWith=function(str){
- var reg=new RegExp(str+"$");
- return reg.test(this);
- }
以上这篇浅谈 js 中 startsWith 函数不能在任何浏览器兼容的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0526/327177.html