将文本中的单词替换为javascript,但如果该单词在更大的单词中则不替换

replace a word in text with javascript but not if the word is in a bigger word.

本文关键字:替换 单词 单词中 文本 javascript 如果      更新时间:2023-09-26

你好,我想替换文本字符串中的单词,但这似乎比我想象的要难。它应该是在javascript。说我的词是"离子"。它应该取代我在文本中看到的:my ion, "ion", ion: is cool, (ion), [ion]。但如果它是另一个单词的一部分,比如position(位置),就不是这样了。

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

尝试/('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");

你可以制作regexp,它会告诉你:[不是一个字母]或[不是一个字母]。

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

编辑:

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