2014-11-22 66 views
0

重复我解压的话这个数:显示多少个字在文本区域

var sim = /\s+/gi;              

var words= parag.value.trim().replace(sim, ' ').split(' ').length; 

而且我想告诉重复的话,我怎么可以?

+0

你试过了什么? – 2014-11-22 11:00:41

回答

2

下面的代码片段会给你重复的单词的阵列中的文本:

var text = "this is this and that was that"; 
var frequency = text.split(' ').reduce(function(previous, current) { 
    if (!previous.hasOwnProperty(current)) { 
     previous[current] = 0; 
    } 
    previous[current] += 1; 
    return previous; 
}, {}); 

var repeatedWords = Object.keys(frequency).filter(function(element) { 
    return frequency[element] > 1; 
}); 

console.log(repeatedWords); 
// => ["this", "that"] 
  1. 斯普利特文本标记。
  2. 将数组减少到一个对象。
  3. 初始化一个空对象。
  4. 如果令牌不存在,一个将其设置为0。
  5. 增量令牌计数。
  6. 通过每个令牌。
  7. 计数大于1的筛选标记。
+0

干得好琥珀灯,请问您会如何添加一个环状槽长度大于5个符号的filtrer?谢谢 – Europeuser 2015-07-29 07:07:25

+0

当然。如果您只想专注于大于5个字母的单词,请用此频率[element]> 1 && element.length> 5'替换此频率[element]> 1'。 – Amberlamps 2015-07-29 10:13:25

+0

太棒了!谢谢 ! – Europeuser 2015-07-29 10:32:15