我正在尝试查找字符串中的尾随换行符的数量。请考虑以下示例:
var foo = 'bar \n fooo \n \n \n';
对于foo
我应该回到3,这意味着它不会计算bar和fooo之间的换行符。
我现在正在做的方法是匹配所有尾随空格/\s*$.
,然后将/\n/g
与结果匹配以获得确切的数字。虽然这有效,但我想知道是否有办法只使用一个正则表达式。谢谢你的帮助!
P.S。
假设所有换行都标准化为\n
。
答案 0 :(得分:1)
(\ S * \ n \ S *)+ $
\ s *匹配零个或多个空格
'你的字符串'.match(/(\ s * \ n \ s *)+ $ / g)。length;
答案 1 :(得分:1)
您可以使用/\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;