首頁  >  文章  >  web前端  >  js判斷一個字串是否包含一個子字串的方法_javascript技巧

js判斷一個字串是否包含一個子字串的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:17:551271瀏覽

本文實例講述了js判斷一個字串是否包含一個子字串的方法。分享給大家供大家參考。具體如下:

在我們前端日常開發中,常常會遇到判斷一個字串中是否包含某個子字串,這裡我們將去探究一些解決此種需求的方法以及正確的使用它們。理想情況下,我們要找的是一個能符合我們的目的(if x contains y)的方法,並傳回true或false。

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

這兩個方法,可能是我們最容易想到的,如果包含子字串,則傳回大於等於0的索引,否則回傳-1,沒有達到我們的理想情況。

複製程式碼 程式碼如下:
var str    = "My blogblog 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 blogblog 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 blogname is Benjamin-blogname is體驗",
    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程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn