正则表达式替换多个匹配项

时间:2020-09-02 21:50:01

标签: javascript regex

试图找出要在以下位置插入和删除字符串(在这种情况下为var.par_)的正则表达式:

  • 非常开始
  • 在^
  • 之后
  • ^ OR
  • 之后

注入时输入字符串的示例:

job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava

应导致输出

var.par_job=developer^var.par_language=js^ORvar.par_language=react^ORvar.par_languageSTARTSWITHjava

,删除时反之亦然

var.par_language=react^ORvar.par_languageSTARTSWITHjava

应该导致

language=react^ORlanguageSTARTSWITHjava

我目前微弱的尝试是这样

var input = "job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava";


const replaceToken = "var.par_";


var output = input.replace(/^()?/, replaceToken).replace(/\^()?/g, '^' + replaceToken);

1 个答案:

答案 0 :(得分:1)

let input = "job=developer^language=js^ORlanguage=react^ORlanguageSTARTSWITHjava";
const replaceToken = "var.par_";
let output = input.replace(/^|\^OR|\^/g, '$&' + replaceToken);
console.log(output)

正则表达式/^|\^OR|\^/与您的每个位置匹配。替换中的$&被替换为匹配项。因此,无需使用多次调用.replace()