js判断一个字符串是否包含一个子串的方法


Posted in Javascript onJanuary 26, 2015

本文实例讲述了js判断一个字符串是否包含一个子串的方法。分享给大家供大家参考。具体如下:

在我们前端日常开发中,经常会遇到判断一个字符串中是否包含某个子串,这里我们将去探究一些解决此种需求的方法以及正确的使用它们。理想情况下,我们要找的是一个能匹配我们的目的(if x contains y)的方法,并返回true或false。

一、String.prototype.indexOf和String.prototype.lastIndexOf

这两个方法,可能是我们最容易想到的,如果包含子串,则返回大于等于0的索引,否则返回-1,没有达到我们的理想情况。

var str    = "My blog name is Benjamin-专注前端开发和用户体验",

    substr = "Benjamin";

 

function isContains(str, substr) {

    return str.indexOf(substr) >= 0;

}

 

//true

console.log(isContains(str, substr));

二、String.prototype.search

我们想到了String.prototype.search方法,因search方法的参数是一个正则表达式,所以和indexOf的情况相同。

var str    = "My blog name is Benjamin-专注前端开发和用户体验",

    substr = "Benjamin";

 

function isContains(str, substr) {

    return new RegExp(substr).test(str);

}

 

//true

console.log(isContains(str, substr));

这个方法比indexOf方法看起来好点,该方法直接返回true or false,同时方法名称test比indexOf更有语义性。

三、String.prototype.contains

var str    = "My blog name is Benjamin-专注前端开发和用户体验",

    substr = "Benjamin";

 

function isContains(str, substr) {

    return str.contains(substr);

}

 

//true

console.log(isContains(str, substr));

此方法目前只有Firefox支持,还处于ECMAScript 6草案中。这个方法满足了上面提到的理想情况。详情请点击这里。如果你想使用contains方法,可以参考第三方库string.js,点击此处本站下载string.js。源码实现:
contains: function(ss) {

  return this.s.indexOf(ss) >= 0;

},

其它方法待补充。。。

当然在性能问题上,使用哪种方法更快,还有待测试。感兴趣的朋友不妨亲自动手测试一下。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 Javascript
JQuery each()嵌套使用小结
Apr 18 Javascript
整理JavaScript创建对象的八种方法
Nov 03 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
Oct 12 Javascript
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 Javascript
详解js中的原型,原型对象,原型链
Jul 16 Javascript
javascript中Object使用详解
Jan 26 #Javascript
JQuery中的事件及动画用法实例
Jan 26 #Javascript
javascript折半查找详解
Jan 26 #Javascript
JavaScript数据类型检测代码分享
Jan 26 #Javascript
浅谈Javascript中的Function与Object
Jan 26 #Javascript
javascript实现动态加载CSS
Jan 26 #Javascript
使用jQuery实现返回顶部
Jan 26 #Javascript
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python实现最大子序和的方法示例
2019/07/05 Python
简单了解python反射机制的一些知识
2019/07/13 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Pygame的程序开始示例代码
2020/05/07 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Python configparser模块应用过程解析
2020/08/14 Python
什么是URL
2015/12/13 面试题
招商经理岗位职责
2013/11/16 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
学校春季防火方案
2014/06/08 职场文书
运动会加油稿20字
2014/11/15 职场文书
质检员岗位职责
2015/02/03 职场文书
结婚主持人致辞
2015/07/28 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang