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获得地址栏参数的两种方法
Nov 08 Javascript
javascript检查日期格式的函数[比较全]
Oct 17 Javascript
javascript中万恶的function实例分析
May 25 Javascript
jquery 与NVelocity 产生冲突的解决方法
Jun 13 Javascript
js控制当再次点击按钮时的间隔时间
Jun 03 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
javascript实现检验的各种规则
Jul 31 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
移动前端图片压缩上传的实例
Dec 06 Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
Aug 31 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
Python实现求两个csv文件交集的方法
2017/09/06 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
《大海那边》教学反思
2014/04/09 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
组工干部演讲稿
2014/09/02 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
上诉状格式
2015/05/23 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL
Python中requests库的用法详解
2022/06/05 Python