js判斷一個字符串是否包含一個子串的方法
本文實(shí)例講述了js判斷一個字符串是否包含一個子串的方法。分享給大家供大家參考。具體如下:
在我們前端日常開發(fā)中,經(jīng)常會遇到判斷一個字符串中是否包含某個子串,這里我們將去探究一些解決此種需求的方法以及正確的使用它們。理想情況下,我們要找的是一個能匹配我們的目的(if x contains y)的方法,并返回true或false。
一、String.prototype.indexOf和String.prototype.lastIndexOf
這兩個方法,可能是我們最容易想到的,如果包含子串,則返回大于等于0的索引,否則返回-1,沒有達(dá)到我們的理想情況。
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ù)是一個正則表達(dá)式,所以和indexOf的情況相同。
substr = "Benjamin";
function isContains(str, substr) {
return new RegExp(substr).test(str);
}
//true
console.log(isContains(str, substr));
這個方法比indexOf方法看起來好點(diǎn),該方法直接返回true or false,同時方法名稱test比indexOf更有語義性。
三、String.prototype.contains
substr = "Benjamin";
function isContains(str, substr) {
return str.contains(substr);
}
//true
console.log(isContains(str, substr));
此方法目前只有Firefox支持,還處于ECMAScript 6草案中。這個方法滿足了上面提到的理想情況。詳情請點(diǎn)擊這里。如果你想使用contains方法,可以參考第三方庫string.js,點(diǎn)擊此處本站下載string.js。源碼實(shí)現(xiàn):
return this.s.indexOf(ss) >= 0;
},
其它方法待補(bǔ)充。。。
當(dāng)然在性能問題上,使用哪種方法更快,還有待測試。感興趣的朋友不妨親自動手測試一下。
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
微信小程序?qū)崿F(xiàn)搜索功能并跳轉(zhuǎn)搜索結(jié)果頁面
本文主要介紹了微信小程序?qū)崿F(xiàn)搜索功能并跳轉(zhuǎn)搜索結(jié)果頁面,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12javascript作用域鏈與執(zhí)行環(huán)境詳解
這篇文章主要為大家詳細(xì)介紹了javascript作用域鏈與執(zhí)行環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03微信小程序wx.previewImage預(yù)覽圖片實(shí)例詳解
下面通過實(shí)例代碼給大家講解了微信小程序wx.previewImage預(yù)覽圖片功能,需要的朋友可以參考下2017-12-12JavaScript實(shí)現(xiàn)基于十進(jìn)制的四舍五入實(shí)例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)基于十進(jìn)制的四舍五入的方法,實(shí)例分析了javascript針對數(shù)值判斷與相關(guān)運(yùn)算技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07