Martin
Martin

Reputation: 1343

RegEx: Replace string between two non-matching strings

i want to replace a word in a string:

Input: "left.position.left = leftContent.left.posleft"

Output: "a.position.left = content.left.posleft"

Before "left" there shouldn´t be [a-zA-Z0-9.] and behind there shouldn´t be [a-zA-Z0-9].

This is my code I wrote so far:

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

But it returns:

"a.position.a = leftContent.a.posa"

Could anybody help me?

Upvotes: 3

Views: 52

Answers (1)

vks
vks

Reputation: 67988

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

Try this.See 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);

Upvotes: 2

Related Questions