【问题标题】:Count the number of lines in textarea that are all numbers?计算textarea中全是数字的行数?
【发布时间】:2016-12-15 21:35:27
【问题描述】:

我需要通过 JQuery 或普通的旧 JS 计算 textarea 中的行数,但这不是全部问题。

我还需要循环遍历每一行并匹配每一行(可能带有一些正则表达式)所有数字条目 - 带或不带逗号。 我想我有一些正则表达式可以根据需要进行匹配:

(?:^|\s)(\d*\.?\d+|\d{1,3}(?:,\d{3})*(?:\.\d+)?)(?!\S)

对我来说最困难的部分是遍历文本区域的每一行并验证(并返回计数)所有有效行。

我该怎么做呢?

【问题讨论】:

  • 您可以使用line.split('\n') 将输入拆分为行数组。然后遍历数组,将每一行与正则表达式进行匹配,并在匹配时增加一个计数器。
  • Instea of​​ ^|\s 你可以使用\b 来匹配单词边界。
  • 谢谢!你说对了。我根据您的 cmets 发布了答案。 (因为尝试学习 JS 而被否决真是太好了-_-)我确实搜索过...

标签: javascript jquery regex textarea


【解决方案1】:

在 Barmar 的帮助下解决了这个问题。

function getLineCount() {
        var lines = $('textarea#my-textarea').val().split('\n');
        var count = 0;
        lines.forEach(function (line) {
            if (/(?:\b)(\d*\.?\d+|\d{1,3}(?:,\d{3})*(?:\.\d+)?)(?!\S)/.test(line)) {
                count++;
            }
        });
        //console.log(count);
        return count;
    }

如果您愿意,显然可以通过对象重载使其更实用,但我的用例更具体到单个文本区域。

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2020-01-30
    • 2022-01-06
    • 2020-06-28
    相关资源
    最近更新 更多