我有一个变量:
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
关于JavaScript 正则表达式替换整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32240675/