浅谈js中startsWith 函数不能在任何浏览器兼容的问题


Posted in Javascript onMarch 01, 2017

在做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 函数不能在任何浏览器兼容的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
jquery操作对象数组元素方法详解
Nov 26 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
Feb 14 Javascript
图文介绍Vue父组件向子组件传值
Feb 17 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 Javascript
js实现拖拽功能
Mar 01 #Javascript
js实现下拉菜单效果
Mar 01 #Javascript
JS实现复制功能
Mar 01 #Javascript
node.js利用redis数据库缓存数据的方法
Mar 01 #Javascript
JS三目运算(三元运算)方法详解
Mar 01 #Javascript
vue-router 学习快速入门
Mar 01 #Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 #Javascript
You might like
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php中的登陆login
2007/01/18 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
深入分析PHP引用(&)
2014/09/04 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
在django中,关于session的通用设置方法
2019/08/06 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
大学学习生活感言
2014/01/18 职场文书
销售主管竞聘书
2014/03/31 职场文书
锦旗标语大全
2014/06/23 职场文书
服务行业演讲稿
2014/09/02 职场文书
学习与创新自我评价
2015/03/09 职场文书
大学生十八大感想
2015/08/11 职场文书
《社戏》教学反思
2016/02/22 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Python IO文件管理的具体使用
2022/03/20 Python
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
Mysql 文件配置解析介绍
2022/05/06 MySQL