3

なぜこれがInvalid regular expression: Invalid groupエラーになるのか誰にもわかりますか?

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

これはOKです:

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

そのため、最初のもの ( ) のどこが間違っているのかわかりません&gt;

これが例のフィドルです。

4

1 に答える 1

3

JavaScript は後読みをサポートしていません。同じ動作を得る 1 つの方法を次に示します。

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

このアプローチは、次のブログ エントリから来ています: JavaScript での後読みの模倣

ここに更新されたfiddleがあります。

于 2012-05-21T19:02:49.933 に答える