博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript中判断字符串是否以指定字符串开始或结尾
阅读量:6082 次
发布时间:2019-06-20

本文共 1285 字,大约阅读时间需要 4 分钟。

  我们都知道Java中的String提供了用于判断是否以指定字符串开头、结尾的方法。分别是startWith和endWith,但是最近开发过程中我也遇到了类似的问题只不过是在javascript中,需要判断一个链接地址是否以http://开头或判断一个地址是否以"/"开头。

     但是通过查看API,原生的javascript的String并没有提供现成的办法来解决此类需求。因此我就开始想办法如何能够正确的判断某个字符串是否以指定的字符串开始或者结尾。

     后来终于找到了好的办法,特记录如下。

     我会首先将代码和测试用例贴上,然后再具体解释为什么要这么写

//判断当前字符串是否以str开始 先判断是否存在function是避免和js原生方法冲突,自定义方法的效率不如原生的高     if (typeof String.prototype.startsWith != 'function')        String.prototype.startsWith = function (str){          return this.slice(0, str.length) == str;       };     }          //判断当前字符串是否以str结束     if (typeof String.prototype.endsWith != 'function') {       String.prototype.endsWith = function (str){          return this.slice(-str.length) == str;       };     }     //测试程序     var sCompareStr = "abcdefg123";//比较字符串     var sBeCompareStr = "fg";//被比较字符串     if(sCompareStr.endsWith(sBeCompareStr)){
//这里可以替换为startsWith alert(sCompareStr+" 是以:"+sBeCompareStr+" 结束"); }else{ alert(sCompareStr+" 不是以:"+sBeCompareStr+" 结束"); }

这样书写的原因:

  1. 之所以在将整个代码放在if判断中是因为避免以后原生的js版本中增加了同类方法而导致代码效率降低。因为对于同名方法来说,js原生的代码效率要高于用户自己扩展的方法
  2. 之所以使用slice方法而不使用indexof方法,是由于indexof方法在处理较长的字符串时效率比较低

  最后注明一下版权,本文由yutiansanshou原创发表,你可以任意转载,但必需在明显位置注明作者和出处,而且不能用于任何商业用途

转载于:https://www.cnblogs.com/yutiansanshou/archive/2012/12/03/2800505.html

你可能感兴趣的文章
关于python 缺少dbm模块问题
查看>>
新建Android项目是自动生成appcompat_v7
查看>>
事物的4中隔离级别,及在spring事物中的对应关系
查看>>
ADSL基本知识介绍及ADSL上行带宽
查看>>
mysql之SQL执行计划分析EXPLAIN
查看>>
爱加密联合应用之星(APPSTAR)为开发者提供免费云加密服务
查看>>
如何辨别优秀的程序员
查看>>
Java设计模式百例 - 简单工厂模式
查看>>
solr 空值查询和不包含子字段的数据统计
查看>>
XPE中常用的网络功能组件及其描述
查看>>
3D打印开放工具链-开源而且免费
查看>>
CCNA学习总结—RIP协议—RIP防环机制及其他
查看>>
为 VMware 虚拟软件手动安装 VMware Tools
查看>>
MySQL Explain详解
查看>>
MySQL的几个概念:主键,外键,索引,唯一索引
查看>>
我的友情链接
查看>>
Python_类和实例属性的增删改查操作
查看>>
apache模块mod_rpaf ,让nginx后端的apache获取访客IP
查看>>
IBM服务器RAID5
查看>>
李新海:尺有所长,寸有所短,你找到自己的优势了吗?
查看>>