1

この正規表現をjavascriptで機能させることはできません:

pat = new RegExp("Lorem(?=([^<]*($|<a|<[^/]|</[^a]))*($|(?<=a)))", "g");
test = test.replace(pat, '<a href="#">Lorem</a>');

エラーが表示されます: invalid quantifier

しかし、ここで動作しています: http://gskinner.com/RegExr/?2va0g

ご協力いただきありがとうございます :)

編集

「String」のすべての出現箇所をリンクに置き換える必要がありますが、「String」がまだリンクになっていない場合に限ります。

エス。

This is a <a href="#">String</a>. This is another String.

=>

This is a <a href="#">String</a>. This is another <a href="#">String</a>.

リンク es の URL も確認できる場合は、次のようにします。

This is a <a href="http://www.test.com/String">link</a>

=>

This is a <a href="http://www.test.com/String">link</a>

おそらく、内部にないすべての文字列を置き換えるのに十分です<a ... </a>(最初の TAG は意図的に閉じられていません)。

4

1 に答える 1

0

この例を参照ここ

var toreplace = "String"; // Text to find
var rx = new RegExp ("((?!\/)" + toreplace + "(?!\"))(?!<(.*?)>)", "g");
var txt = "This is a <a href=\"#\">String</a>. This is another String."; // Text to replace.
var newtxt = txt.replace (rx, '<a href="#">$1</a>'); // New Text

結果は次のとおりです。

This is a <a href="#">String</a>. This is another String.

=>

This is a <a href="#">String</a>. This is another <a href="#">String</a>.
于 2012-10-30T18:37:48.950 に答える