我有一个变量:
var str = "@devtest11 @devtest1";
我用这种方式用另一个字符串替换
@devtest1
:str.replace(new RegExp('@devtest1', 'g'), "aaaa")
但是,其结果(
aaaa1 aaaa
)不是我期望的。预期的结果是:@devtest11 aaaa
。我只想替换整个单词@devtest1
。我怎样才能做到这一点?
最佳答案
使用\b
零宽度字边界断言。
var str = "@devtest11 @devtest1";
str.replace(/@devtest1\b/g, "aaaa");
// => @devtest11 aaaa
如果还需要防止匹配
hello@devtest1
这样的情况,则可以执行以下操作:var str = "@devtest1 @devtest11 @devtest1 hello@devtest1";
str.replace(/( |^)@devtest1\b/g, "$1aaaa");
// => @devtest11 aaaa