测试字符串中出现反斜杠时JavaScript正则表达式匹配错误
我试图用正则表达式匹配并突出显示源文件中的任何字符串测试字符串中出现反斜杠时JavaScript正则表达式匹配错误,javascript,regex,backslash,Javascript,Regex,Backslash,我试图用正则表达式匹配并突出显示源文件中的任何字符串 /(["'])([^\1]+?)(?:\1)/g 大多数情况下,它做得很好,但当被测试的字符串具有ie时 cout name您需要使用负向前查找来匹配以下字符(紧跟在“或”之后的字符) (["'])(?:\\.|(?!\1).)*\1 您似乎认为[^\1]将创建一个否定字符类(从'或“”)。但事实并非如此,\`和1`在括号内都被逐字处理。我做了,但我不再是了。必须更多地研究消极前瞻+1,很好的方法(尽管它会在转义引号处中断)。不,这不起作
/(["'])([^\1]+?)(?:\1)/g
大多数情况下,它做得很好,但当被测试的字符串具有ie时
cout name您需要使用负向前查找来匹配以下字符(紧跟在“
或”
之后的字符)
(["'])(?:\\.|(?!\1).)*\1
您似乎认为[^\1]
将创建一个否定字符类(从'
或“
”)。但事实并非如此,
\`和1`在括号内都被逐字处理。我做了,但我不再是了。必须更多地研究消极前瞻+1,很好的方法(尽管它会在转义引号处中断)。不,这不起作用。这-([“')(?:\\.\124;(?!\ 1)。*\1
-但是,它是。)。因为它不是有效的代码。)关键是,任何字符串文字都可能包含\“
或\'
序列(请查看演示中的第一个序列)。感谢大家的帮助@raina77ow(?