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 相关文章推荐
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
jquery 模板的应用示例
Nov 12 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
学习Bootstrap滚动监听 附调用方法
Jul 02 Javascript
react-native 完整实现登录功能的示例代码
Sep 11 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 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
实用函数2
2007/11/08 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
Laravel 队列使用的实现
2019/01/08 PHP
js获取单选按钮的数据
2006/11/27 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
JS实现按钮颜色切换效果
2020/09/05 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
python3编写C/S网络程序实例教程
2014/08/25 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
python实现梯度法 python最速下降法
2020/03/24 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
Java的五个基础面试题
2016/02/26 面试题
Ruby如何创建一个线程
2013/03/10 面试题
班会关于环保演讲稿
2013/12/29 职场文书
学校证明范文
2015/06/24 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书