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 相关文章推荐
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
javascript事件冒泡简单示例
Jun 20 Javascript
jQuery实现自动输入email、时间和域名的方法
Aug 24 Javascript
JavaScript中的工厂函数(推荐)
Mar 08 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
AngularJS 控制器 controller的详解
Oct 17 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
js回调函数原理与用法案例分析
Mar 04 Javascript
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
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分页显示制作详细讲解
2006/10/09 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
详解JS预解析原理
2020/06/16 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
python控制台英汉汉英电子词典
2020/04/23 Python
Python生成密码库功能示例
2017/05/23 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
美国电视购物:QVC
2017/02/06 全球购物
教师职称自我鉴定
2014/02/12 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
PHP实现两种排课方式
2021/06/26 PHP