Javascript 用if语句替换函数
我有一个场景,文本块包装相同,但它们的正则表达式转换不同 我希望在replace中使用函数回调,而不是重复的replace调用。然而,似乎我不能用1美元之类的?它只是逐字打印出“$1”,而不是捕获组Javascript 用if语句替换函数,javascript,regex,Javascript,Regex,我有一个场景,文本块包装相同,但它们的正则表达式转换不同 我希望在replace中使用函数回调,而不是重复的replace调用。然而,似乎我不能用1美元之类的?它只是逐字打印出“$1”,而不是捕获组 console.log( ({{text1}}诸如此类诸如此类诸如此类{{para2}}')。替换(/\{{(\w+)(\d+)\}}/g,函数(匹配){ 如果(“$1”=“文本”){ 返回“[$1/$2]”; }否则{ 返回“[$1--$2]”; } }) );捕获作为函数参数传递。你可以在网上
console.log(
({{text1}}诸如此类诸如此类诸如此类{{para2}}')。替换(/\{{(\w+)(\d+)\}}/g,函数(匹配){
如果(“$1”=“文本”){
返回“[$1/$2]”;
}否则{
返回“[$1--$2]”;
}
})
);代码>捕获作为函数参数传递。你可以在网上阅读更多关于它的信息
函数将捕获作为参数传递函数(匹配,$1,$2)
捕获作为函数参数传递。你可以在网上阅读更多关于它的信息
函数将捕获作为参数传递函数(匹配,$1,$2)
在我使用时替换方法返回索引并匹配函数参数中的值
替换我使用的函数参数中的方法返回索引和匹配值。如果需要,它将在完全匹配参数后将捕获的组作为位置参数。它不会尝试解释从函数返回的字符串
您可以通过在函数中获取这些参数,并使用它们构建要返回的字符串来解决问题:
('{{text1}} blah blah blah blah blah blah {{para2}}').replace(/\{\{(\w+)(\d+)\}\}/g, function(match, p1, p2){
if ( p1 === "text" ) {
return '[' + p1 + '/' + p2 + ']';
} else {
return '[' + p1 + '----' + p2 + ']';
}
});
如果选择,它将在完全匹配参数后将捕获的组作为位置参数。它不会尝试解释从函数返回的字符串
您可以通过在函数中获取这些参数,并使用它们构建要返回的字符串来解决问题:
('{{text1}} blah blah blah blah blah blah {{para2}}').replace(/\{\{(\w+)(\d+)\}\}/g, function(match, p1, p2){
if ( p1 === "text" ) {
return '[' + p1 + '/' + p2 + ']';
} else {
return '[' + p1 + '----' + p2 + ']';
}
});
您需要,或者如果您知道数字,可以将其作为固定参数:
console.log(
({{text1}}诸如此类诸如此类诸如此类{{para2}})
.replace(/\{(\w+)(\d+)\}}/g,
功能(匹配、capture1、capture2){
如果(capture1==“文本”){
返回“[”+capture1+”/“+capture2+”];
}否则{
返回'['+capture1+'---'+capture2+'];
}
})
);代码>您需要,或者如果您知道数字,您可以将其作为固定参数获取:
console.log(
({{text1}}诸如此类诸如此类诸如此类{{para2}})
.replace(/\{(\w+)(\d+)\}}/g,
功能(匹配、capture1、capture2){
如果(capture1==“文本”){
返回“[”+capture1+”/“+capture2+”];
}否则{
返回'['+capture1+'---'+capture2+'];
}
})
);代码>$
只有在replace()
函数中的替换参数为字符串时,变量才可用。对于函数,通过函数中的参数访问捕获的内容。因此,子匹配的数量提供了函数中参数的数量
console.log(
({{text1}}诸如此类诸如此类诸如此类{{para2}')。替换(/\{{(\w+)(\d+)\}/g,函数(匹配,p1,p2){
如果(p1==“文本”){
返回'['+p1+'/'+p2+']';
}否则{
返回'['+p1+'---'+p2+']';
}
})
);代码>$
只有在replace()
函数中的替换参数为字符串时,变量才可用。对于函数,通过函数中的参数访问捕获的内容。因此,子匹配的数量提供了函数中参数的数量
console.log(
({{text1}}诸如此类诸如此类诸如此类{{para2}')。替换(/\{{(\w+)(\d+)\}/g,函数(匹配,p1,p2){
如果(p1==“文本”){
返回'['+p1+'/'+p2+']';
}否则{
返回'['+p1+'---'+p2+']';
}
})
);代码>if('$1'==“text”)
可能永远不会计算为trueif('$1'==“text”)
可能永远不会计算为true
('{{text1}} blah blah blah blah blah blah {{para2}}').replace(/\{\{(\w+)(\d+)\}\}/g, function(match, p1, p2){
if ( p1 === "text" ) {
return '[' + p1 + '/' + p2 + ']';
} else {
return '[' + p1 + '----' + p2 + ']';
}
});