3

谁能看到为什么这会Invalid regular expression: Invalid group出错?

text.replace(/(?<!br|p|\/p|b|\/b)>/g, "&gt;");

这个没问题:

text.replace(/<(?!br|p|\/p|b|\/b)/g, "&lt;");

所以,我不确定第一个 ( &gt;) 哪里出了问题。

这是一个例子

4

1 回答 1

3

JavaScript 不支持lookbehinds。这是获得相同行为的一种方法:

text = text.replace(/(br|p|\/p|b|\/b)?>/g, function($0, $1){
    return $1 ? $0 : "&gt;";
});

这种方法来自以下博客条目:在 JavaScript 中模仿 Lookbehind

这是一个更新的小提琴

于 2012-05-21T19:02:49.933 回答