var x = '#google'; // or '@google' or '%google'
var pattern = new RegExp('(^|\\s)' + x);
var result = txt.replace(pattern, '$1' + 'MyNewWord');
此代码可以替代#google
如果我使用&或@而不是#它工作正常
当我使用$而不是#时,它才起作用,因此以下代码无法正常工作
var x = '$google';
var pattern = new RegExp('(^|\\s)' + x);
var result = txt.replace(pattern, '$1' + 'MyNewWord');
ps我使用了新的RegEXP,因为x将是用户输入。
答案 0 :(得分:6)
$
是RegExp中的一个特殊字符,因此您需要将其转义:
var x = '\\$google';
var pattern = new RegExp('(^|\\s)' + x);