您好我想替换文本字符串中的单词,但这似乎比我想象的更难。它应该是在javascript中。说我的话就是“离开”。它应该在我在文中看到时取代:我的离子,离子:离子:很酷,(离子),[离子]。但不是当它是位置(positION)这样的另一个词的一部分时。
可能应该用正则表达式来完成,但我不知道怎么做。
答案 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 显然是您要替换的词。