本文實例講述了js判斷一個字符串是否包含一個子串的方法。分享給大家供大家參考。具體如下:
在我們前端日常開發(fā)中,經(jīng)常會遇到判斷一個字符串中是否包含某個子串,這里我們將去探究一些解決此種需求的方法以及正確的使用它們。理想情況下,我們要找的是一個能匹配我們的目的(if x contains y)的方法,并返回true或false。
一、String.prototype.indexOf和String.prototype.lastIndexOf
這兩個方法,可能是我們最容易想到的,如果包含子串,則返回大于等于0的索引,否則返回-1,沒有達到我們的理想情況。
var str = "My blog name is Benjamin-專注前端開發(fā)和用戶體驗",
substr = "Benjamin";
function isContains(str, substr) {
return str.indexOf(substr) >= 0;
}
//true
console.log(isContains(str, substr));
二、String.prototype.search
我們想到了String.prototype.search方法,因search方法的參數(shù)是一個正則表達式,所以和indexOf的情況相同。
var str = "My blog name is Benjamin-專注前端開發(fā)和用戶體驗",
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-專注前端開發(fā)和用戶體驗",