吐槽: google浏览其中用到的startsWith函数IE中竟然没有,可恨的是IE11都没有。
解决办法:
1. 通过正则表达式进行判断
startsWith替换方案
if(/^serial=.*$/g.test(dns[i])){//dns[i]要匹配的字符串,前面表示以serial=开头
serial=decodeURIComponent(dns[i].substring(7))
}
endsWith替换方案
if(/^.*serial=$/g.test(dns[i])){//dns[i]要匹配的字符串,前面表示以serial=结尾
serial=decodeURIComponent(dns[i].substring(7))
}
2. 通过扩展String的方法
扩展startsWith方法
//推荐使用
String.prototype.startsWith=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;
}
//不推荐使用
//或者使用正则表达式,方法如下
//缺点当要传入特殊字符的时候不好解决比如判断以?开头建议不要使用
String.prototype.startsWith = function(str) {
var reg = new RegExp("^" + str);
return reg.test(this);
}
扩展endsWith方法
//推荐使用
String.prototype.endsWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
return false;
if(this.substring(this.length-str.length)==str)
return true;
else
return false;
return true;
}
//或者使用正则表达式(不推荐使用)
//缺点当要传入特殊字符的时候不好解决比如判断以?结尾建议不要使用
String.prototype.endsWith = function(str) {
var reg = new RegExp(str + "$");
return reg.test(this);
}
注意:使用注意扩展String方法一定在页面加载完成后。
<script>
//使用注意扩展String方法一定在页面加载完成后
window.onload=function () {
String.prototype.startsWith = 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;
}
}
</script>