2015-10-03 42 views
0

必須檢查一些文檔是否在textarea中寫入。前('Zuzu max capsuni','Zuzu Max afine')等等。檢查數組中是否存在多個字jquery

我的問題是,我不知道如何使這個功能。我試圖用這些單詞組成一個數組,然後試着用indexOf()在textarea上找到它們。 我沒有成功實現,尤其是如果我寫小寫。有人有解決方案嗎?由於

<div>Button</div> 
<textarea></textarea> 


var words = ['Zuzu Max capsuni', 'Zuzu max piersici', 'Zuzu Max mere si pere', 'Zuzu Max afine', 'Zuzu Max stracciatella', 'Zuzu max natur']; 
var text = $('textarea').val(); 
$('div').on('click', function(){ 
    if(text.indexOf(words)){ 
     console.log('match'); 
    } 
}); 

忘了jsfiddle

+0

你正在.....'String.indexOf(Array)'...必須做一個數組循環並檢查每一個 – charlietfl

+0

如果它們不相等,嘗試使用'indexOf'和'lastIndexOf'元素是重複 – Tushar

+0

但是,我怎樣才能檢查每3個字或類似的東西?我將會收到3-5個字,並且必須以這種方式檢查 – codetheweb

回答

1

您需要循環通過words數組並逐個檢查它們對textarea字符串。代碼中的另一個問題是:indexOf返回-1(如果未找到字符串)或number(代表搜索字符串的位置)。

var textarea = $('textarea'); 
var words = ['Zuzu Max capsuni', 'Zuzu max piersici', 'Zuzu Max mere si pere', 'Zuzu Max afine', 'Zuzu Max stracciatella', 'Zuzu max natur']; 

$('div').on('click', function(){ 
    var text = textarea.val(); 

    for (var i = 0, len = words.length; i < len; i++) { 
     if (text.indexOf(words[i]) > -1) { 
      console.log('match', words[i]); 
     } 
    } 
}); 

這裏你可以看到一個工作小提琴:http://jsfiddle.net/22vuakp9/

不區分大小寫:http://jsfiddle.net/22vuakp9/1/

+0

它正在工作!它現在是有道理的!謝謝。還有一種驗證小寫字母的方法嗎? – codetheweb

+0

@codetheweb如果你想讓搜索大小寫不敏感,只需將'words'和'text'轉換爲小寫。我用更新的小提琴更新了答案。 – gyo

+0

非常感謝gyo。我嘗試了一天來完成。 – codetheweb

0

我的假設是,陣「字」包含要檢查 的句子。

首先將所有句子都寫成小寫或大寫。您可以使用UnderscoreJS 來做這件事,或者您也可以自己做。

見下文:

var words = ['Zuzu Max capsuni', 'Zuzu max piersici', 'Zuzu Max mere si pere']; 
 

 
//using underscoreJS . See link: http://underscorejs.org/#map 
 
wordsLowerCase = _.map(words, function(word) { 
 
    return word.toLowerCase(); 
 
}); 
 

 

 
var text = $('textarea').val().toLowerCase(); 
 

 
$('div').on('click', function() { 
 

 
    wordsLowerCase.forEach(function(word) { 
 
     if (text.indexOf(word) > -1) { 
 
      console.log('match'); 
 
     } 
 
    }); 
 

 
});

注:有幾種方法,你可以在你的目標到達。這只是其中一種方式。

哪一個是最好的方法?這取決於。

我希望你覺得這有幫助。

乾杯!