使用数组

时间:2017-01-29 10:24:34

标签: javascript regex search match

我正在尝试根据数组中预定义词的列表搜索网页正文的文本。然后记录每个单词的出现次数。

<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)

1 个答案:

答案 0 :(得分:1)

试试这个

n = str.match(new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig')) || []).length;
  1. 使用ig标记

    制作动态正则表达式
    new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig')
    
  2. 将空数组定义为fallback

    str.match(regex) || []
    
  3. 返回结果数组或回退数组的长度

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