繁体   English   中英

如何在javascript中计算字符串中的空行

[英]How to count empty lines inside a string in javascript

我正在尝试计算字符串中的所有空行。 我目前的功能类型:

function count_empty(text) {
    var regex = /\r\n?|\n/g;
    var lines = text.split(regex);
    var sep = [];
    $.each(lines, function(k, val) {
        if(!val) {
            //sentence
            sep.push(val);
        }
    });
    return sep.length;
}

...但我真的认为可以用更好的方法实现这样的事情:

function count_empty(text) {
    return (text.match(/\r\n?|\n/g) || []).length;
}

当然,应修改第二种替代方案中的正则表达式以实际满足要求。 所以,问题是:我应该在第二种方法中使用什么正则表达式来检索空行?

一个考虑因素 :如果一行仅包含空格,则将其视为空行。

这个textarea的字符串应该返回3与该函数。

<textarea id="test">first line

third line


</textarea>

谢谢!

如果为正则表达式启用多行模式m ,则可以匹配空行^$ ,并计算已找到的匹配项数。 请注意, [ \\t]*将匹配零个或多个空格或制表符。

function count_lines(text){
    return text ? (text.match(/^[ \t]*$/gm) || []).length : 0;
}

这应该非常快,因为在正则表达式之后不需要后处理。

有关带注释的演示,请参阅Regex101

你可以这样做

function count_lines(txt){
   return (txt.match(/\n(?=\n/g)) || []).length;
}

上面做的是匹配\\n ,然后是另一个\\n ,然后返回匹配的长度。

DEMO

那这个呢?

function count_empty(text) {
    return (text.match(/(^[ \t]*(\n|$))/gm) || []).length;
}

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM