1
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 将是用户输入。

4

1 回答 1

6

$是 RegExp 中的特殊字符,因此您需要对其进行转义:

var x = '\\$google';
var pattern = new RegExp('(^|\\s)' + x);
于 2012-10-13T04:07:13.223 回答