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 导出数据到Excel(处理table中的元素)
Dec 18 Javascript
js 函数的副作用分析
Aug 23 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
利用vue重构有赞商城的思路以及总结整理
Feb 21 Javascript
封装一下vue中的axios示例代码详解
Feb 16 Javascript
JS前端使用canvas实现物体的点选示例
Aug 05 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
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
python条件和循环的使用方法
2013/11/01 Python
python实现堆栈与队列的方法
2015/01/15 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
师德师风承诺书
2014/05/23 职场文书
快递员岗位职责
2014/09/12 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
小学运动会开幕词
2016/03/04 职场文书
学习计划是什么
2019/04/30 职场文书
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android