浅谈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如何实现点击时高亮显示代码
Jan 22 Javascript
js动态拼接正则表达式的两种方法
Mar 04 Javascript
jquery中attr和prop的区别分析
Mar 16 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
JavaScript 中对象的深拷贝
Dec 04 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
Jun 04 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
Jul 10 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 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获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
jQuery 使用手册(二)
2009/09/23 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python和Go语言的区别总结
2019/02/20 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Python字典dict常用方法函数实例
2020/11/09 Python
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
工程招投标邀请书
2014/01/30 职场文书
在职员工证明书
2014/09/19 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
大学生操行评语大全
2014/12/31 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang