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

时间:2013-11-18 23:36:17

标签: javascript regex

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

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

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

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

P.S。

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

2 个答案:

答案 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;