JavaScript 正则表达式替换整个单词

标签 javascript regex

我有一个变量:

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/

相关文章:

基于 Javascript 的重定向 : will it hurt SEO?

javascript - 将多列 html 表转换为单列以实现移动友好布局

javascript - 如何在同一个谷歌地图上创建多个多边形?

mysql 查询不显示空字段

java - 正则表达式删除除与字母组合的数字之外的所有数字

javascript - 将 javascript 变量附加到 href 文件夹路径

javascript - 使用 Javascript Yammer API 访问外部网络数据

.net - 用于匹配数字的正则表达式,后跟 . (点)然后是数字,后跟 .等等

黎巴嫩电话号码的 PHP 正则表达式

java - 如果找不到匹配项,替换会做什么? (在引擎盖下)