簡體   English   中英

比較JavaScript中的部分字符串

[英]Compare part of string in JavaScript

我如何比較字符串的一部分 - 例如,如果我想比較字符串A是字符串B的一部分我想知道:當string A = "abcd"string B = "abcdef"它需要返回真實。 我如何在JavaScript中執行此操作? 如果我使用substring(start, end)我不知道要傳遞給startend參數的值。 有任何想法嗎?

你可以使用indexOf

if ( stringB.indexOf( stringA ) > -1 ) {
  // String B contains String A
} 

像這樣:

var str = "abcdef";
if (str.indexOf("abcd") >= 0)

請注意,這是區分大小寫的。 如果您想要不區分大小寫的搜索,可以編寫

if (str.toLowerCase().indexOf("abcd") >= 0)

要么,

if (/abcd/i.test(str))

對於不區分大小寫的搜索的通用版本,您可以設置任何大小寫的字符串

if (stringA.toLowerCase().indexOf(stringB.toLowerCase()) >= 0)

Javascript ES6 / ES2015具有String.includes()除IE之外幾乎具有所有瀏覽器兼容性。 (但還有什么是新的?)

let string = "abcdef";
string.includes("abcd"); //true
string.includes("aBc"); //false - .includes() is case sensitive

"abcdef".indexOf("abcd") !== -1應該沒問題

如果處理大字符串並且只需要驗證字符串的開頭,則使用indexOf或match會非常慢。 更好的解決方案是使用startsWith()或其等效函數 - 來自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith

if (!String.prototype.startsWith) {
    String.prototype.startsWith = function(searchString, position){
      position = position || 0;
      return this.substr(position, searchString.length) === searchString;
  };
}

您也可以嘗試javascript搜索

if( stringA.search(stringB) > -1){
}

使用正則表達式可能對您有所幫

var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){                            
   return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM