【问题标题】:jQuery word counting not working properlyjQuery字数计数无法正常工作
【发布时间】:2014-01-24 18:03:41
【问题描述】:

你好

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


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

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

所以我尝试自己构建一个:

http://jsfiddle.net/EcHBP/

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

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

1:如果我输入一些文本,按 Enter,然后再输入一些文本,则不算数。

2:如果我按空格键,然后按回车键,则算作有一个单词。

这很烦人!

我也尝试将split(" ") 替换为match(/\s+/gi),但这并没有成功。

有人可以帮帮我吗? 我是不是都做错了?

【问题讨论】:

  • 这些字符是如何显示的?通过直接输入或使用像Å 这样的htmlentities,甚至使用像Å 这样的html unicode

标签: javascript jquery regex


【解决方案1】:

用这样的空格替换换行符

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

DEMO

【讨论】:

  • 该死的安东你难道没有比在我面前回答问题更好的事情吗? ;)
【解决方案2】:

如果在计数之前用空格替换所有退货,应该没问题。

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

【讨论】:

    【解决方案3】:

    我已经编辑了你的 jsfiddle 以在没有你的问题的情况下工作。

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

    我添加了修剪以删除行尾的空行和空格。我使用了一个正则表达式来删除多行上的空格。

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

    【讨论】:

    • 也是一个很好的答案。现在我不知道那些 XD 是什么
    【解决方案4】:

    只需像这样更改您的代码:

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

    JSFIDDLE DEMO

    你的代码有问题:

    它正在计算以空格分隔的所有字符。

    但是换行是不同的字符,也算。

    【讨论】:

    • 也是一个很好的答案:D
    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2020-08-26
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多