2016-11-28 28 views
0

目前我需要將用戶輸入與現有值匹配和我都用過,使用.match()不區分大小寫的話

return book.id.match(keyword); 

現在我需要做的關鍵字匹配不區分大小寫,其中Bookt和例如,BOOkT也應該匹配。我嘗試使用正則表達式,但它不讓我將「關鍵字」變量傳遞給正則表達式。任何想法如何簡單地做到這一點?

+6

'.match(new RegExp(keyword,'i'))''假設'keyword'中沒有特殊符號。 – Tushar

+1

'book.id.toLowerCase()。includes(keyword.toLowerCase())' – Bergi

回答

0

你可以使用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') 
} 
+0

請注意,OP的代碼不顯示任何上下文;如果'.match()'返回的數組用於某些事情,那麼切換到'.indexOf()'將不起作用。 – nnnnnn