javascript中的正则表达式忽略换行符

时间:2014-06-23 09:48:51

标签: javascript regex newline whitespace

我想知道为什么以下正则表达式结果为TRUE:

var users = "TEST\nTEST2";
var user  = "TEST5"
var position = users.search( user + "\n|$"); // result: 10

我想在user中搜索users。 有人可以解释一下结果吗?

2 个答案:

答案 0 :(得分:3)

您的正则表达式结束于TEST5\n|$,这意味着“TEST5\n或字符串的结尾”:

Regular expression visualization

Debuggex Demo

找不到

TEST5\n,但字符串的结尾是索引10(你的字符串有10个字符)。

我猜您正在寻找user + "(\\n|$)"

Regular expression visualization

Debuggex Demo

请注意,我使用反斜杠转义,因为在字符串文字中。它不会改变结果,但是 regex-way 写一个换行符。

答案 1 :(得分:0)

你可以使用积极的前瞻

user + "(?=\\n|$)"

这意味着user后跟\n$