正则表达式无效组

时间:2012-05-21 18:04:49

标签: javascript regex

任何人都可以看到为什么会出现Invalid regular expression: Invalid group错误吗?

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

这个没关系:

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

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

这是一个fiddle的例子。

1 个答案:

答案 0 :(得分:3)

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

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

此方法来自以下博客条目:Mimicking Lookbehind in JavaScript

以下是更新的fiddle