正则表达式检测空格,新行来计算Javascript中的单词

时间:2017-08-29 05:15:32

标签: javascript angularjs regex

我试图在Summernote编辑器中以有角度的方式计算单词。 我创建了一个服务来计算单词,但它不适用于新行

这是示例文本

Hult International 23

s

e

r

t

我尝试过以下方式

if (text && text.length > 0) {
    text = text.replace(/<(?:.|\n)*?>/gm, '').replace(/&amp;nbsp;/g, '').replace(/&nbsp;/g, '').trim();
    return text.length ? text.split(/\s+/).length : 0;
}

你也可以在附件中看到它http://i.prntscr.com/rVnabSWbR1G5rcelz915qQ.png

4 个答案:

答案 0 :(得分:2)

String.prototype.countWords = function(){
    return this.split(/\s+\b/).length;
}

Now you can use text.countWords()并且无需使用替换功能。

答案 1 :(得分:1)

您正在用空字符串替换\n,从而删除行之间的所有空格并从23sert创建单个单词。 我不确定我是否理解replace步骤的重点,但如果您在文本中没有非单词符号,则可以使用 return text && text.length ? text.split(/\s+/gm).length : 0 而不是整个块。

(可能需要一些抛光来说明前导/尾随空格)

答案 2 :(得分:1)

在彻底调查正则表达式结构后,我更换了一个空格,同时更换了标签和放大器。它起作用了

text = text.replace(/<(?:.|\n)*?>/gm, ' ').replace(/&amp;nbsp;/g, '').replace(/&nbsp;/g, '').trim();

发布此答案可能会帮助其他人

答案 3 :(得分:0)

这应该做到

rmdir

enter image description here