[英]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.