在测试字符串中反斜杠时,JavaScript RegEx匹配错误

时间:2014-09-10 12:33:14

标签: javascript regex backslash

我尝试使用正则表达式匹配并突出显示源文件中的任何字符串

/(["'])([^\1]+?)(?:\1)/g

大多数情况下它确实很好,但是当测试的字符串有ie。

  

cout << this->name << "(" << this->x << "," << this->y << ") r=" << this->distance() << "\n";

它突破并突出显示(,<< this->distance() <<,而不是(,\n

我现在得出的结论是反斜杠(转义字符)突破了突出显示,因为用\n替换endl会再次产生想要的结果。

为什么会这样,我怎样才能突出显示工作并想要?

1 个答案:

答案 0 :(得分:0)

您需要使用否定前瞻符合以下字符("'之后的字符)。

(["'])(?:\\.|(?!\1).)*\1

DEMO