Javascript 如何用其他文本替换正则表达式{someText}}?
我有一个输入字符串:Javascript 如何用其他文本替换正则表达式{someText}}?,javascript,regex,Javascript,Regex,我有一个输入字符串: var mystring = "{{myDog}} is a good dog" 或 var mystring=“{{anotherDog}}是一只好狗” 现在,使用replace方法和正则表达式,我想用替换“{{myDog}”“{{anotherDog}}”或替换为“Tommy” 注意:我不想依赖两组花括号内的字符串。。所以,在两条卷发之间可能有任何东西,连同卷发背带应该被汤米取代。 所以,myString.replace({{myDog}}',Tommy')不起作用
var mystring = "{{myDog}} is a good dog"
或
var mystring=“{{anotherDog}}是一只好狗”
现在,使用replace
方法和正则表达式,我想用替换“{{myDog}”
“{{anotherDog}}”
或替换为“Tommy”
注意:我不想依赖两组花括号内的字符串。。所以,在两条卷发之间可能有任何东西,连同卷发背带应该被汤米取代。
所以,myString.replace({{myDog}}',Tommy')
不起作用
所以
如何编写正则表达式?我已经编写了小模板函数,您可以试试
功能tpl(str,数据){
Object.keys(数据).forEach(函数(键){
str=str.replace(新的RegExp('\{'+key+'\}}'),data[key]);
});
返回str;
}
console.log(
tpl({{myDog}}是一只好狗,{{{anotherDog}}},{myDog:'Tommy',anotherDog:'Jim'})
);代码>我已经编写了小模板函数,你可以试试
功能tpl(str,数据){
Object.keys(数据).forEach(函数(键){
str=str.replace(新的RegExp('\{'+key+'\}}'),data[key]);
});
返回str;
}
console.log(
tpl({{myDog}}是一只好狗,{{{anotherDog}}},{myDog:'Tommy',anotherDog:'Jim'})
);代码>我已经编写了小模板函数,你可以试试
功能tpl(str,数据){
Object.keys(数据).forEach(函数(键){
str=str.replace(新的RegExp('\{'+key+'\}}'),data[key]);
});
返回str;
}
console.log(
tpl({{myDog}}是一只好狗,{{{anotherDog}}},{myDog:'Tommy',anotherDog:'Jim'})
);代码>我已经编写了小模板函数,你可以试试
功能tpl(str,数据){
Object.keys(数据).forEach(函数(键){
str=str.replace(新的RegExp('\{'+key+'\}}'),data[key]);
});
返回str;
}
console.log(
tpl({{myDog}}是一只好狗,{{{anotherDog}}},{myDog:'Tommy',anotherDog:'Jim'})
);代码>构建一个RegExp,允许您调用。替换一次
function replaceTemplate(str, dict) {
var re = RegExp('\\{\\{(' + Object.keys(dict).join('|') + ')\\}\\}', 'g');
return str.replace(re, function (a, b) {
return dict[b];
});
}
var s = '{{foo}} is {{bar}}',
d = {
foo: 'long day',
bar: 'long'
};
replaceTemplate(s, d); // "long day is long"
构建一个RegExp,让您调用一次.replace
,如下所示
function replaceTemplate(str, dict) {
var re = RegExp('\\{\\{(' + Object.keys(dict).join('|') + ')\\}\\}', 'g');
return str.replace(re, function (a, b) {
return dict[b];
});
}
var s = '{{foo}} is {{bar}}',
d = {
foo: 'long day',
bar: 'long'
};
replaceTemplate(s, d); // "long day is long"
构建一个RegExp,让您调用一次.replace
,如下所示
function replaceTemplate(str, dict) {
var re = RegExp('\\{\\{(' + Object.keys(dict).join('|') + ')\\}\\}', 'g');
return str.replace(re, function (a, b) {
return dict[b];
});
}
var s = '{{foo}} is {{bar}}',
d = {
foo: 'long day',
bar: 'long'
};
replaceTemplate(s, d); // "long day is long"
构建一个RegExp,让您调用一次.replace
,如下所示
function replaceTemplate(str, dict) {
var re = RegExp('\\{\\{(' + Object.keys(dict).join('|') + ')\\}\\}', 'g');
return str.replace(re, function (a, b) {
return dict[b];
});
}
var s = '{{foo}} is {{bar}}',
d = {
foo: 'long day',
bar: 'long'
};
replaceTemplate(s, d); // "long day is long"
在本例中,mystring.replace({{myDog}}',Tommy')
就足够了,除非它需要执行多次。为什么您觉得需要正则表达式?是的,但我不想依赖myDog,2个花括号之间可以有任何字符串。如果您可以假设它们,请查看本例中的模板字符串mystring.replace(“{{myDog}}”,“Tommy”)
就足够了,除非需要多次执行。为什么您觉得需要正则表达式?是的,但我不想依赖myDog,2个花括号之间可以有任何字符串。如果您可以假设它们,请查看本例中的模板字符串mystring.replace(“{{myDog}}”,“Tommy”)
就足够了,除非需要多次执行。为什么您觉得需要正则表达式?是的,但我不想依赖myDog,2个花括号之间可以有任何字符串。如果您可以假设它们,请查看本例中的模板字符串mystring.replace(“{{myDog}}”,“Tommy”)
就足够了,除非需要多次执行。为什么你觉得需要正则表达式?是的,但我不想依赖myDog,2个花括号之间可能有任何字符串。如果你可以假设它们,请看一下模板字符串谢谢Alexander。对不起,我不想依赖我的狗和另一条狗的绳子。在这个tpl({{myDog}}是一只好狗,{{{anotherDog}},{myDog:'Tommy',anotherDog:'Jim}),我们仍然依赖于这些字符串。我想要的是这样的东西:tpl({{{blablhahdf}}是一只好狗,{{{{someotherblahblahthatwident}}},{'Tommy',Jim',})谢谢亚历山大。对不起,我不想依赖我的狗和另一条狗的绳子。在这个tpl({{myDog}}是一只好狗,{{{anotherDog}},{myDog:'Tommy',anotherDog:'Jim}),我们仍然依赖于这些字符串。我想要的是这样的东西:tpl({{{blablhahdf}}是一只好狗,{{{{someotherblahblahthatwident}}},{'Tommy',Jim',})谢谢亚历山大。对不起,我不想依赖我的狗和另一条狗的绳子。在这个tpl({{myDog}}是一只好狗,{{{anotherDog}},{myDog:'Tommy',anotherDog:'Jim}),我们仍然依赖于这些字符串。我想要的是这样的东西:tpl({{{blablhahdf}}是一只好狗,{{{{someotherblahblahthatwident}}},{'Tommy',Jim',})谢谢亚历山大。对不起,我不想依赖我的狗和另一条狗的绳子。在这个tpl({{myDog}}是一只好狗,{{{anotherDog}},{myDog:'Tommy',anotherDog:'Jim}),我们仍然依赖于这些字符串。我想要的是这样的东西:tpl({{{blablhahdf}}是一只好狗,{{{{someotherblahblahthatwideknow}}},{'Tommy',Jim'})