2017-01-29 22 views
0

我想根據數組中的預定義單詞列表搜索網頁正文的文本。然後記錄每個單詞有多少個實例出現。使用數組的Javascript搜索字符串

<script> 
var str = document.body.innerText; 
var array = []; 
array[0] = "Statement"; 
array[1] = "Documents"; 
var regexp = new RegExp('\\b' + array.join('\\b|\\b') + '\\b').test(str); 
document.write(regexp) 
</script> 

那一個只返回真或假。 或者有沒有辦法讓這個工作?

var str = document.body.innerText; 
var n = str.match(use array here) 
document.write(n) 
+0

TRY(這裏使用陣列)做'VAR N = str.match。長度;' – Safirah

+2

還檢查了這樣一個問題: http://stackoverflow.com/questions/1072765/count-number-of-matches-of-a-regex-in-javascript – Safirah

+0

不要使用非標準的'innerText'。使用'textContent'。 – Oriol

回答

1

嘗試此

n = str.match(new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig')) || []).length; 
  1. 使動態正則表達式與ig標誌

    new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig') 
    
  2. 限定一個空數組作爲後備

    ​​
  3. 返回的結果陣列的長度或備用陣列

    str.match(new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig')) || []).length; 
    
+0

我可能沒有足夠的技巧來實現這一點。 我認爲這很容易。 我會多點擊教程。 – Dante