jQuery字计数不正常

时间:2014-01-24 09:52:56

标签: javascript jquery regex

你好

我正在尝试构建一个jQuery字计数器,但几乎每个人都不能使用像æ, ø, å, ö这样的特殊字符....但这些字符在我的国家 LETTERS 特殊字符。


这是我尝试的第一个计数器:http://www.electrictoolbox.com/jquery-count-words-textarea-input/

它运作正常,但它没有与上面的字母一起使用。

所以我试图建立一个自我:

http://jsfiddle.net/EcHBP/

我必须构建它,所以它也计算特殊字符,否则它将无法工作。 Microsoft Word的文字计数器也这样做,所以它不会打扰我。

但现在还有其他一些问题:

1:如果我输入了一些文字,请按Enter键,然后输入更多文字,就不算数了。

2:如果我点击空格键然后按回车键,则表示有一个单词。

这非常烦人!

我还尝试将split(" ")替换为match(/\s+/gi),但这并不能解决问题。

有人可以帮帮我吗? 我是以错误的方式做这一切的?

4 个答案:

答案 0 :(得分:4)

用这样的空格替换换行符

var matches = $(field).val().replace(/(\r\n|\n|\r)/gm,' ').split(" ");

DEMO

答案 1 :(得分:3)

如果你在计算之前用空格替换所有的回报,你应该没事。

text.replace(/[\n\r]/g, ' ') // Replaces all returns in text with a space

答案 2 :(得分:1)

我已经编辑了你的jsfiddle,没有你的问题。

http://jsfiddle.net/gL6FY/1/

我添加了trim以删除行尾的空行和空格。我使用正则表达式删除多行的空格。

var matches = $(field).val().trim().split(/\s/gm);

答案 3 :(得分:1)

只需更改您的代码:

var matches = $(field).val().split(/[ \n\r]/);

<强> JSFIDDLE DEMO

您的代码出现问题:

它计算了所有被空格分隔的角色。

但新线是不同的角色,也算得上。