我有一个场景,其中文本块包装相同,但他们的正则表达式转换不相同。替换函数结合if语句
而不是近乎重复的替换调用,我希望在替换中使用函数回调。但是,似乎我不能使用$ 1等?它只是从字面上打印出“$ 1”,而不是捕获组。
console.log(
('{{text1}} blah blah blah blah blah blah {{para2}}').replace(/\{\{(\w+)(\d+)\}\}/g, function(match){
\t if ('$1' === "text") {
\t \t return '[$1/$2]';
\t } else {
\t \t return '[$1----$2]';
\t }
})
);
应该产生:
'[text/1] blah blah blah blah blah blah [para----2]'
但目前生产:
'[$1/$2] blah blah blah blah blah blah [$1----$2]'
'如果( '$ 1' === “文本”)'或许会永远不会计算为true – maksymiuk
是的,我没有看到一个。我已经更新了答案 – Joe