试图找出要在以下位置插入和删除字符串(在这种情况下为var.par_
)的正则表达式:
注入时输入字符串的示例:
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);
答案 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()
。