【发布时间】:2012-10-13 04:04:48
【问题描述】:
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 将是用户输入。
【问题讨论】:
-
in regex
$表示字符串结束 -
$在正则表达式中有特殊的含义。正确地转义它,你应该没问题。 -
顺便说一句,
$1' + 'MyNewWord'与$1MyNewWord相同,可以在字符串中插入标记。
标签: javascript regex replace special-characters