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的AutoComplete插件
May 04 Javascript
兼容IE和FF的图片上传前预览js代码
May 28 Javascript
javascript去除字符串左右两端的空格
Feb 05 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
JavaScript基础心法 数据类型
Mar 05 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 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
解析smarty模板中类似for的功能实现
2013/06/18 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
老生常谈js数据类型
2017/08/03 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
django如何连接已存在数据的数据库
2018/08/14 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
EJB的角色和三个对象
2015/12/31 面试题
车间工艺员岗位职责
2013/12/09 职场文书
财务总监岗位职责
2014/03/07 职场文书
关于环保的建议书400字
2014/03/12 职场文书
校长寄语大全
2014/04/09 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
师德师风承诺书
2014/05/23 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
职称评定个人总结
2015/03/05 职场文书
2015年女职工工作总结
2015/05/15 职场文书
英语演讲开场白
2015/05/29 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Golang数据类型和相互转换
2022/04/12 Golang