繁体   English   中英

JavaScript Regex:字符串中的尾随换行符数

[英]JavaScript Regex: Number of trailing newlines in a string

我正在尝试查找字符串中的尾随换行符的数量。 请考虑以下示例:

var foo = 'bar \n fooo \n   \n   \n';

对于foo我应该回到3,这意味着它不会计算bar和fooo之间的换行符。

我现在正在做的方式是匹配所有尾随空格/\\s*$. 然后将/\\n/g与结果匹配以获得确切的数字。 虽然这有效,但我想知道是否有办法只使用一个正则表达式。 谢谢你的帮助!

PS

假设所有换行都标准化为\\n

(\\ S * \\ n \\ S *)+ $

\\ s *匹配零个或多个空格

'你的字符串'。匹配(/(\\ s * \\ n \\ s *)+ $ / g)。length;

您可以使用/\\s+$/来查找所有尾随空格,然后计算该字符串中找到的\\n数。

例如:

var foo = 'bar \n fooo \n   \n   \n';
var trailingLines = foo .match(/\s+$/)[0].split('\n').length - 1; 

或者,您可以在这样的模式中使用前瞻:

/\n(?=\s*$)/g

这将匹配任何\\n后跟零个或多个空格字符和字符串结尾。

例如:

var foo = 'bar \n fooo \n   \n   \n';
var trailingLines = foo.match(/\n(?=\s*$)/g).length;

暂无
暂无

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

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