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实现的仿Flash广告图片轮换效果
Apr 24 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
JS实现图片翻书效果示例代码
Sep 09 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 Javascript
利用vue3+ts实现管理后台(增删改查)
Oct 30 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 ajax 静态分页过程形式
2011/09/02 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
5种Python单例模式的实现方式
2016/01/14 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
酒店led欢迎词
2014/01/09 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS