0
目前我需要將用戶輸入與現有值匹配和我都用過,使用.match()不區分大小寫的話
return book.id.match(keyword);
現在我需要做的關鍵字匹配不區分大小寫,其中Bookt和例如,BOOkT也應該匹配。我嘗試使用正則表達式,但它不讓我將「關鍵字」變量傳遞給正則表達式。任何想法如何簡單地做到這一點?
目前我需要將用戶輸入與現有值匹配和我都用過,使用.match()不區分大小寫的話
return book.id.match(keyword);
現在我需要做的關鍵字匹配不區分大小寫,其中Bookt和例如,BOOkT也應該匹配。我嘗試使用正則表達式,但它不讓我將「關鍵字」變量傳遞給正則表達式。任何想法如何簡單地做到這一點?
你可以使用match和regex作爲參數。
var string = "BoOkt";
var result = string.match(/bookt/i);
if (result){
alert('match');
}
使用正則表達式的替代版本是indexOf
。如果您的用戶輸入中包含正則表達式元字符,並且使用match
會成爲您的另一個問題。
var match = 'awesome';
var string = 'stackoverflow is AweSoMe place';
if (string.toLowerCase().indexOf(match) != -1){
alert('match')
}
請注意,OP的代碼不顯示任何上下文;如果'.match()'返回的數組用於某些事情,那麼切換到'.indexOf()'將不起作用。 – nnnnnn
'.match(new RegExp(keyword,'i'))''假設'keyword'中沒有特殊符號。 – Tushar
'book.id.toLowerCase()。includes(keyword.toLowerCase())' – Bergi