Javascript 如何用RegEx找到的变量名替换RegEx?

Javascript 如何用RegEx找到的变量名替换RegEx?,javascript,regex,string,Javascript,Regex,String,假设我有一个名为testvar的变量和包含这个testvar的字符串 我希望我的函数获取整个字符串并用找到的正则表达式替换正则表达式。 /k.*j/此RegExp查找以k开头并以j结尾的所有子字符串 在我的示例中,它必须将ktestvarj替换为它的值, 最后,我想要“一些刺痛的角色123” var t='some sting characters ktestvarj'; var-testvar=123; 变量修改=函数(str){ var teststr=str.replace(/k.*j/

假设我有一个名为
testvar
的变量和包含这个
testvar
的字符串
我希望我的函数获取整个字符串并用找到的正则表达式替换正则表达式。
/k.*j/
此RegExp查找以k开头并以j结尾的所有子字符串

在我的示例中,它必须将
ktestvarj
替换为它的值,
最后,我想要“一些刺痛的角色123”

var t='some sting characters ktestvarj';
var-testvar=123;
变量修改=函数(str){
var teststr=str.replace(/k.*j/,'+/k.*j/+');
log(teststr);
}

修改(t)假设我们有一个字典
变量
,它存储要替换的变量。然后可以使用“替换为自定义”。我添加了组捕获
/k(.*j?)j/g
——因此第一个组将是您的变量名。并且还添加了全局标志来替换每个匹配项

var t='some sting characters ktestvarj';
变量变量={
'testvar':123,
'testvar1':456
};
函数替换程序(匹配、p1、偏移、字符串){
返回变量[p1];
}
变量修改=函数(str){
var teststr=str.replace(/k(.*j?)j/g,replacer);
log(teststr);
}
修改(t);

修改(“某些ktestvarj sting字符ktestvarj ktestvar1j”)
不会是
t
一些字符串k123j'?我有点困惑-你想用什么替换正则表达式匹配的内容?有一次,你说你想用匹配的字符替换它……所以从
'some sting characters ktestvarj'
你会得到相同的字符串。但是你说“我想要‘一些sting字符123’”,所以你想要用完全不同的东西替换正则表达式匹配的任何东西。如果我理解,你想要用一个变量值替换与你的模式匹配的单词。为什么不在参数中给出变量呢
var teststr=str.replace(/k.*j/,testvar)它的内部是一些字符串,该字符串是变量的名称。所以我想找到每个开头包含k,结尾包含j的子串,它们之间的字符串值,并用变量(***)替换kj@floriancallewart,因为我不知道有多少变量。在我的例子中,它是testvar,但可能它有50个变量,我不知道它们中的任何一个。它只返回ktestvarj,但这很容易解决。是的,忘了添加全局标志:)