Javascript 如何忽略regexp中的换行符?

Javascript 如何忽略regexp中的换行符?,javascript,Javascript,如何在Javascript中忽略regexp中的换行符 例如: data = "\ <test>11\n 1</test>\n\ #EXTM3U\n\ " var reg = new RegExp( "\<" + "test" + "\>(.*?)\<\/" + "test" + "\>" ) var match = data.match(reg) console.log(match[1]) data=”\ 11

如何在Javascript中忽略regexp中的换行符

例如:

 data = "\
    <test>11\n
    1</test>\n\
    #EXTM3U\n\
 "
 var reg = new RegExp( "\<" + "test" + "\>(.*?)\<\/" + "test" + "\>" )
 var match = data.match(reg)
 console.log(match[1])
data=”\
11\n
1\n\
#EXTM3U\n\
"
var reg=new RegExp(“\(.*?\”)
变量匹配=数据匹配(reg)
console.log(匹配[1])

结果:未定义

在JavaScript中,没有标志告诉
RegExp()
应该匹配换行符。因此,您需要使用一种变通方法,例如
[\s\s]

您的RegExp将如下所示:

var reg = new RegExp( "\<" + "test" + "\>([\s\S]*?)\<\/" + "test" + "\>" );
var reg=new RegExp(“\([\s\s]*?)\”;

您最好使用
[\s\s]
而不是。用于多行匹配


它是最常见的JavaScript习惯用法,用于匹配包括换行符在内的所有内容。与基于交替的方法(如
(.|\n)
相比,这种方法更直观,效率更高。第2行末尾缺少一个JS换行符
\

另外,将regexp更改为:

 var data = "\
    <test>11\n\
    1</test>\n\
    #EXTM3U\n\
 ";
 var reg = new RegExp(/<test>(.|\s)*<\/test>/);
 var match = data.match(reg);
 console.log(match[0]);
var数据=”\
11\n\
1\n\
#EXTM3U\n\
";
var reg=新的RegExp(/(.|\s)*/);
var匹配=数据匹配(reg);
console.log(匹配[0]);

通过阅读以下内容:

我带着它来的,这很有效:

var data = "<test>11\n1</test>\n#EXTM3U\n";
reg = /<test>([\s\S]*?)<\/test>/;
var match = data.match(reg);
console.log(match[1]);
var data=“11\n1\n#EXTM3U\n”;
reg=/([\s\s]*?)/;
var匹配=数据匹配(reg);
console.log(匹配[1]);
这里有一把小提琴:

可能是