浅谈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 相关文章推荐
jQuery学习2 选择器的使用说明
Feb 07 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
最后说说Vue2 SSR 的 Cookies 问题
May 25 Javascript
原生js实现form表单序列化的方法
Aug 02 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
Oct 12 Javascript
vue选项卡切换登录方式小案例
Sep 27 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
php生成静态文件的多种方法分享
2012/07/17 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
jQuery使用方法
2017/02/04 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
微信小程序之蓝牙的链接
2017/09/26 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
Python open读写文件实现脚本
2008/09/06 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python帮你识破双11的套路
2019/11/11 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
机电专业毕业生求职信
2013/10/27 职场文书
新闻学毕业生自荐信
2013/11/15 职场文书
优秀经理事迹材料
2014/02/01 职场文书
公司催款律师函
2015/05/27 职场文书
观后感格式
2015/06/19 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
初中英语教学随笔
2015/08/15 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技