js判断⼀个字符串是否包含⼀个⼦串的⽅法
本⽂实例讲述了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更有语义性。
三、ains
复制代码代码如下:
var str = "My blog name is Benjamin-专注前端开发和⽤户体验",
substr = "Benjamin";
function isContains(str, substr) {
子字符串是什么ains(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程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论