RegEx:在两个不匹配的字符串之间替换字符串

时间:2015-03-24 16:11:05

标签: javascript regex

我想替换字符串中的单词:

  

输入:“left.position.left = leftContent.left.posleft”

     

输出:“a.position.left = content.left.posleft”

在“离开”之前不应该有[a-zA-Z0-9。]并且后面不应该有[a-zA-Z0-9]。

这是我到目前为止编写的代码:

"left.position.left = leftContent.left.posleft".replace(new RegExp("left(?![a-zA-Z0-9])", "g"), "a")

但它返回:

  

“a.position.a = leftContent.a.posa”

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

(^|[^a-zA-Z0-9.])left

试试这个。参见demo.Replace by $1a

https://regex101.com/r/tJ2mW5/24

var re = /(^|[^a-zA-Z0-9.])left/gi;
var str = 'left.position.left = leftContent.left.posleft';
var subst = '$1a';

var result = str.replace(re, subst);