如何计算 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;
}
当然,应该修改第二个备选方案中的正则表达式以实际完成要求。所以,问题是:我应该在第二种方法中使用什么正则表达式来仅检索空行?
一个注意事项:如果一行只包含空格,将被视为空行。
这个文本区域的字符串应该 return 3 具有功能。
<textarea id="test">first line
third line
</textarea>
谢谢!
你可以这样做
function count_lines(txt){
return (txt.match(/\n(?=\n/g)) || []).length;
}
上面所做的是匹配 \n
,然后是另一个 \n
,然后返回匹配的长度。
如果您启用多行模式,m
,对于您的正则表达式,您可以匹配空行,^$
,并计算找到了多少匹配项。请注意,[ \t]*
将匹配零个或多个空格或制表符。
function count_lines(text){
return text ? (text.match(/^[ \t]*$/gm) || []).length : 0;
}
这应该非常快,因为在正则表达式之后不需要 post 处理。
有关带注释的演示,请参阅 Regex101。
这个呢?
function count_empty(text) {
return (text.match(/(^[ \t]*(\n|$))/gm) || []).length;
}
我正在尝试计算字符串中的所有空行。我当前的功能类型:
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;
}
当然,应该修改第二个备选方案中的正则表达式以实际完成要求。所以,问题是:我应该在第二种方法中使用什么正则表达式来仅检索空行?
一个注意事项:如果一行只包含空格,将被视为空行。
这个文本区域的字符串应该 return 3 具有功能。
<textarea id="test">first line
third line
</textarea>
谢谢!
你可以这样做
function count_lines(txt){
return (txt.match(/\n(?=\n/g)) || []).length;
}
上面所做的是匹配 \n
,然后是另一个 \n
,然后返回匹配的长度。
如果您启用多行模式,m
,对于您的正则表达式,您可以匹配空行,^$
,并计算找到了多少匹配项。请注意,[ \t]*
将匹配零个或多个空格或制表符。
function count_lines(text){
return text ? (text.match(/^[ \t]*$/gm) || []).length : 0;
}
这应该非常快,因为在正则表达式之后不需要 post 处理。
有关带注释的演示,请参阅 Regex101。
这个呢?
function count_empty(text) {
return (text.match(/(^[ \t]*(\n|$))/gm) || []).length;
}