次のコードを表示します。
'<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()
。(詳細)
"$&"
コメントで述べたように、としてエスケープできます"$$&"
。