今天偶然发现了这个小奇怪,有人能解释一下吗?JavaScript正则表达式匹配文字\
x = 'a \\n b';
x.replace(/\\n/g, '<br>'); // => "a <br> b"
x.replace(RegExp('\\n', 'g'), '<br>'); // => "a \\n b"
x.replace(RegExp('\\n', 'gm'), '<br>'); // => "a <br> b"
我以为/\\n/g
和RegExp('\\n', 'g')
是等价的,但是这似乎并不如此。在哪些情况下使用一种方法会产生不同的结果?
为什么需要多行标志,并且只有在使用RegExp对象时?
编辑: 3更换为我是斗鸡眼,这是x.replace(RegExp('\\n', 'gm'), '<br>'); // => "a \\n b"
你是对的,那个替换没有给我那个输出。我显然只是无法读取控制台。完全忘记了双重逃跑,知道这是简单的事情。谢谢! – kalhartt
@kalhartt。别客气 :) –