2017-01-29 7 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

Постарайтесь делать 'уаг п = str.match (используйте массив здесь) .length;' – 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. сделать динамический Regex с i и g флаг

    new RegExp('\\b(' + arr.join('|') + ')\\b', 'ig') 
    
  2. определить пустой массив в качестве запасного варианта

    str.match(regex) || [] 
    
  3. возвращения длина массива результатов или массив резервного

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

Я, вероятно, недостаточно квалифицирован, чтобы реализовать это. Я думал, что это будет очень просто. Я побью уроки немного больше. – Dante

 Смежные вопросы

  • Нет связанных вопросов^_^