繁体   English   中英

使用正则表达式仅在JavaScript中查找和替换完整单词

[英]Find and replace full words only in JavaScript using regex

说我有以下字符串:

var str = '(1 + foo + 3) / bar';

我想用字母'x'替换所有字符串。 我试过了:

str = str.replace(/\w/g, 'x');

结果是:

(x + xxx + x) / xxx

相反,我希望结果是:

(1 + x + 3) / x

我该怎么做? 我如何才能找到没有数字的单词并将其替换为单个字母?

为什么不只使用[az]+代替\\w呢? (确保添加区分大小写的标志,或改用[a-zA-Z]

str = str.replace(/\b[a-z]+\b/ig, 'x');

\\b匹配单词边界。 这样,“ foo2”就不会变成“ x”。 正如其他人提到的, \\w包含数字,但也包含下划线,因此您将不想使用它。 i修饰符执行不区分大小写的匹配(这样您可以更容易阅读)。

采用:

str = str.replace(/[a-z]+/ig, 'x');

尝试改用[a-zA-Z] \\w等效于[a-zA-Z0-9_]

str = str.replace(/[a-zA-Z]+/g, 'x');

您可以尝试以下正则表达式:

str = str.replace(/[a-z]+/ig, 'x');

[az] -表示您正在寻找任何字母。

+表示您正在寻找组合(xxx)。

i表示文本匹配不区分大小写。

g-表示您正在查找字符串中的所有匹配项。

要么

您可以使用

   [a-zA-Z]

它将查找小写字母az和大写字母AZ。 这是在不使用case修饰符的情况下使用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM