JavaScript regex替换整个单词
JavaScript regex to replace a whole word
我有一个变量:
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
使用词边界'b
限制对词的搜索。
由于@
是一个特殊字符,所以需要在字外进行匹配。
'b
断言位置在字边界(^'w|'w$|'W'w|'w'W)
,因为'b
不包含特殊字符。
var str = "@devtest11 @devtest1";
str = str.replace(/@devtest1'b/g, "aaaa");
document.write(str);
如果您的字符串总是以@
开头,并且您不希望其他字符匹配
var str = "@devtest11 @devtest1";
str = str.replace(/('s*)@devtest1'b/g, "$1aaaa");
// ^^^^^ ^^
document.write(str);
'b
将无法正常工作,如果单词被非空格字符包围,我建议使用以下方法
var output=str.replace('('s|^)@devtest1(?='s|$)','$1aaaa');
相关文章:
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 使用Javascript/Jquery将单词替换为图像
- 将元素的单词替换为空字符串
- 将每个单词替换为标签
- 无法弄清楚如何修复单词替换javascript
- Javascript 正则表达式,用于用新单词替换多个单词
- 如何用一个单词替换每个单词
- javascript中单词替换的regex
- JS:用另一个单词替换链接.嵌套引号+转义码
- 如何在阿拉伯语 JavaScript 中用数组中的两个匹配单词替换两个单词
- HTML/CSS -长单词替换为
- 用javascript中的随机单词替换段落标签内容
- Jquery:仅用第一个单词替换字符串
- Jquery每2秒用数组中的单词替换文本
- 将文本中的单词替换为javascript,但如果该单词在更大的单词中则不替换
- 将数字和电子邮件地址之间的所有单词替换为小写字母,并用下划线分隔
- 将字符串中的所有单词替换为Javascript中的新HTML字符串
- 将字符串中找到的单词替换为大小写敏感(搜索和高亮显示)
- 替换如何将每个单词替换一次
- 将字符串中的单词替换为数组中的数据