次のコードを表示します。
'<node>* loduis <node>*\nucla $&*'.replace(/\<node\>/g, '$&');
結果は次のとおりです。
'<node>* loduis <node>*\nucla <node>*'
予想よりも
'$&* loduis $&*\nucla $&*'
'<node>'に置き換えないのはなぜ'$&'ですか?
次のコードを表示します。
'<node>* loduis <node>*\nucla $&*'.replace(/\<node\>/g, '$&');
結果は次のとおりです。
'<node>* loduis <node>*\nucla <node>*'
予想よりも
'$&* loduis $&*\nucla $&*'
'<node>'に置き換えないのはなぜ'$&'ですか?
本当に必要な場合:
'$&* loduis $&*\nucla $&*'.replace(/\$&/g, '<node>')
.replace(/\<node\>/g, function () { return "$&"; });
$&一致した文字列を に挿入しますreplace()。(詳細)
"$&"コメントで述べたように、としてエスケープできます"$$&"。