我希望将“我”转换为“你”,而不会触及其中包含“我”的词,即
“真棒甜瓜我” - > “真棒甜瓜你”
到目前为止,我得到了负向前瞻模式:
str.replace(/me(?![a-zA-Z])/g, 'you')
所以我得到了
“真棒甜瓜我” - > “awesoyou melon you”
已经尝试过some answers,找不到符合此要求的人,提前感谢您的帮助
答案 0 :(得分:2)
您可以使用零宽度\b
特殊符号来确保匹配" me"如果它是一个完整的词:
"awesome melon me".replace(/\bme\b/g, "you")
// returns "awesome melon you"
答案 1 :(得分:0)
您可以按照其他答案中的建议使用字边界,这也会保留me345
或hello_me
。如果需要更严格的匹配模式,可以在模式之前捕获匹配的字母,并将其置于替换模式中。
var s = "me awesome melon me"
console.log(s.replace(/(^|[^a-zA-Z])(me)(?![a-zA-Z])/g, '$1you'));

答案 2 :(得分:0)
这应该这样做:str.replace(\bme\b/g, 'you')
- \b
寻找单词边界。