浅谈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 相关文章推荐
javascript继承之为什么要继承
Nov 10 Javascript
jquery重新播放css动画所遇问题解决
Aug 21 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
May 30 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
Dec 19 Javascript
ES6关于Promise的用法详解
May 07 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
Dec 05 Javascript
Vue 组件注册实例详解
Feb 23 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
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大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
javascript定时器完整实例
2015/02/10 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
简单的三步vuex入门
2018/05/20 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
python设置随机种子实例讲解
2019/09/12 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
给分销商的致歉信
2014/01/14 职场文书
项目合作意向书范本
2014/04/01 职场文书
校车安全责任书
2014/08/25 职场文书
python 实现的截屏工具
2021/05/08 Python
七个非常实用的Python工具包总结
2021/06/15 Python
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android