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

时间:2014-03-11 04:05:19

标签: javascript regex exec global

为什么下面的代码只给我“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]);
    }

1 个答案:

答案 0 :(得分:4)

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

所以如果你使用:

/[\s\S]*/.exec("abc\nef");

你会得到:

["abc
ef"]