Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用if语句替换函数_Javascript_Regex - Fatal编程技术网

Javascript 用if语句替换函数

Javascript 用if语句替换函数,javascript,regex,Javascript,Regex,我有一个场景,文本块包装相同,但它们的正则表达式转换不同 我希望在replace中使用函数回调,而不是重复的replace调用。然而,似乎我不能用1美元之类的?它只是逐字打印出“$1”,而不是捕获组 console.log( ({{text1}}诸如此类诸如此类诸如此类{{para2}}')。替换(/\{{(\w+)(\d+)\}}/g,函数(匹配){ 如果(“$1”=“文本”){ 返回“[$1/$2]”; }否则{ 返回“[$1--$2]”; } }) );捕获作为函数参数传递。你可以在网上

我有一个场景,文本块包装相同,但它们的正则表达式转换不同

我希望在replace中使用函数回调,而不是重复的replace调用。然而,似乎我不能用1美元之类的?它只是逐字打印出“$1”,而不是捕获组

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”)
可能永远不会计算为true
if('$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 + ']';
    }
});