2015-07-03 3 views
0

Я новичок в кодировании, поэтому мне хотелось бы знать, как я могу подсчитать слова веб-сайта с помощью javascript. Должен ли я использовать .innerText и цикл for?Подсчитайте слова с помощью JavaScript

+1

'.innerText.split (» «) .length' может быть? – DontVoteMeDown

+2

Во-первых, [как вы определяете слово] (https://www.youtube.com/watch?v=m8niIHChc1Y) или, по крайней мере, как вы их разграничиваете, вызовут ли проблемы? Как насчет японских писем? – Xufox

+0

http://jsfiddle.net/j08691/zUuzd/ – Thalaivar

ответ

0

Это, как я хотел бы подсчитать количество слов, как вы набираете:

$(document).ready(function(){ 
    $("#count").on("keyup", function(){ 
     $("#num").html($("#count").html().split(" ").length-1); 
    }); 
}); 

JSFiddle code here

1

Split на регулярное выражение /\W+/ (\W совпадает со всем, что не является латинская буква или арабский номер или подчеркнуть):

var text = "These are two sentences. They have ten words in total."; 
 

 
alert(text.split(/\W+/).length)

Более подробную информацию о регулярных выражений можно найти на по MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

+1

'\ W +' было бы лучше. – Xufox

+0

@Xufox Любой случай, когда отсутствие '+' дало бы неправильный результат? – ben

+0

'' Это два предложения: они имеют всего десять слов. ". Split (/ \ W /). Length' будет давать 12, потому что подсчитываются и пустые строки после' .'. – Xufox

0

Это будет делать трюк для вас, если язык на сайте использует пробелы для разделения слов.

$.fn.showWordCount = function(){ 
    "use strict"; 
    var $targ = $(this); 
    var words = $targ.html().split(' '); 
    var wordCount = words.length; 
    alert(wordCount); 
}; 

$('body *').showWordCount(); 

Доказательство это работает: http://codepen.io/nicholasabrams/pen/rVJPOx

0

Может быть, это может помочь вам:

<script> 
var words = document.getElementsByTagName('body')[0].innerHTML.replace(/<.*?>/g, ''); 
console.log(words.match(/\S+/g).length); 
</script> 
Смежные вопросы