用javascript替换文本中的单词,但如果单词是一个更大的单词则不能。

时间:2014-07-04 10:03:22

标签: javascript regex text replace

您好我想替换文本字符串中的单词,但这似乎比我想象的更难。它应该是在javascript中。说我的话就是“离开”。它应该在我在文中看到时取代:我的离子,离子:离子:很酷,(离子),[离子]。但不是当它是位置(positION)这样的另一个词的一部分时。

可能应该用正则表达式来完成,但我不知道怎么做。

2 个答案:

答案 0 :(得分:2)

尝试/(\bion\b)/gi

\b    assert position at a word boundary
i     modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
g     modifier: global. All matches (don't return on first match)

括号用于对可以从索引1重试的匹配进行分组。

以下是regex101

上的演示

示例代码:(如果您只想替换它,则无需对其进行分组

str.replace(/\bion\b/gi, "XYZ");

答案 1 :(得分:0)

你可以制作正则表达式,它会告诉我们:[不是一个字母]离子[不是一封信]。

这看起来像是:[^a-zA-Z]ion[^a-zA-Z]

编辑:

要保留周围的字符,您需要使用占位符。所以最终的解决方案如下:str.replace(/([^a-zA-Z])ion([^a-zA-Z])/g, '$1REPLACED$2') REPLACED 显然是您要替换的词。