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调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
Sep 16 Javascript
jQuery的each终止或跳过示例代码
Dec 12 Javascript
js 剪切板应用clipboardData详细解析
Dec 17 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
微信小程序 如何引入外部字体库iconfont的图标
Jan 31 Javascript
vue element自定义表单验证请求后端接口验证
Dec 11 Javascript
15个值得收藏的JavaScript函数
Sep 15 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
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
javascript引用对象的方法
2007/01/11 Javascript
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
详解Python yaml模块
2020/09/23 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
捷科时代的软件测试笔试题
2015/11/09 面试题
服务员自我评价
2014/01/25 职场文书
办公室岗位职责
2014/02/12 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技