javascript正则表达式如何处理新行

leo*_*eon 2 javascript regex global exec

为什么下面的代码只给我“abc”而不是“abc\nef”?正则表达式如何处理新行?谢谢。

    var input = "abc\nef",
    pattern = /.*/g,
    result = pattern.exec(input),
    i = 0;

    for (i = 0; i < result.length; i++) {
        console.log(result[i]);
    }
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

在 Javascript 中,您需要使用它[\s\S]来匹配任何字符(包括换行符),因为点不匹配换行符,并且 Javascript 没有s(DOTALL) 正则表达式开关。

所以如果你使用:

/[\s\S]*/.exec("abc\nef");
Run Code Online (Sandbox Code Playgroud)

你会得到:

["abc
ef"]
Run Code Online (Sandbox Code Playgroud)