正規表現の処理に使用しているものによっては、複数のキャプチャグループを使用していることが原因である可能性があります。?:
他のキャプチャグループの前に:を付けることで、他のキャプチャグループを非キャプチャに変更します。
/(?:?![^<>]*>) *(Target) *(?:[^ \d])/g
編集:
コメントからの追加情報で、これはうまくいかないでしょうか?
var str="<div id=\"Target\">text Target othertext</div>";
str = str.replace(/Target/g,"New!");
編集#2:
これは、元の正規表現で始まり、このStackOverflow投稿からの情報を使用するパスです:
var str="<div id=\"Target\">text Target othertext</div><Target test=\"nothing\">Target this is Targeted.</Target>";
alert(str.replace(/(?![^<>]*>)( *)Target( *[^ \d])/g,function(str,group1,group2){return group1 + "NEW!" + group2;}));
私はそれを自分でテストしました、そしてそれはあなたが必要とすることをするようです...または少なくともあなたをさらに前進させます。