查看下一段代码:
'<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()
. (更多信息)
如评论中所述,您可以转义"$&"
为"$$&"
.