javascriptのこの正規表現に問題があります。同じ正規表現はPHPでも機能しますが、JavaScriptでは次のエラーが発生します:「無効な正規表現:(?」の後の認識されない文字。」私の正規表現は次のとおりです。
text = text.replace(/(?<!\=\")http([A-Za-z0-9:\/\.\+\?\%\@\!\#\&_-]+)/g,
'<a href="http$1" target="_blank" rel="nofollow">http$1</a> ');
問題は最初の部分(?< !\=\"
)にありますが、PHPまたはCの通常の正規表現であるため、解決方法がわかりません。
この構造の類似物はありますか?"
のようなhtml要素のURL置換を防ぐために、「http」の直前の記号(二重引用符)を禁止する必要があり<img>
ます。
記号<
に加え!
て、その後のテキストの表示でエラーが発生するため、質問を編集しています。(これもエラーを引き起こす可能性があります)。