我有一個場景,其中文本塊包裝相同,但他們的正則表達式轉換不相同。替換函數結合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