Reputation: 1255
Trying to figure out a Regex to inject and remove a string (in this case var.par_
) at the following locations:
Example input string when injecting:
job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava
Should result in output of
var.par_job=developer^var.par_language=js^ORvar.par_language=react^ORvar.par_languageSTARTSWITHjava
and vice versa when removing:
var.par_language=react^ORvar.par_languageSTARTSWITHjava
should result in
language=react^ORlanguageSTARTSWITHjava
My current feeble attempt was this:
var input = "job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava";
const replaceToken = "var.par_";
var output = input.replace(/^()?/, replaceToken).replace(/\^()?/g, '^' + replaceToken);
Upvotes: 0
Views: 150
Reputation: 780698
let input = "job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava";
const replaceToken = "var.par_";
let output = input.replace(/^|\^OR|\^/g, '$&' + replaceToken);
console.log(output)
The regexp /^|\^OR|\^/
matches each of your locations. $&
in the replacement gets replaced with the match. So there's no need to use multiple calls to .replace()
.
Upvotes: 1