js判断一个字符串是否包含一个子串的方法

一、String.prototype.indexOf和String.prototype.lastIndexOf

1.  例子:

     var tempStr =  "tempText" ;  

     tempStr.indexOf("Texxt"); //返回大于等于0的整数值,若不包含"Text"则返回"-1。

 2. indexOf用法:

     strObj.indexOf(subString[, startIndex])

     JavaScript中indexOf函数方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符

     串, 则返回 -1。如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它

     被当作最大的可能索引。 
     参数: 
     strObj : 必选项,String 对象或文字。    
     subString :必选项,要在 String 对象中查找的子字符串。  
     starIndex :可选项,该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找;

     如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能

     索引。 
 3. 与lastIndexOf的区别:

     lastIndexOf() 方法则是从字符串的结尾开始检索子串。


二、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支持


你可能感兴趣的:(js)