1
私は変数として動的に作成された関数に後方参照を渡そうとしています(バックリファレンスが設定されていて、エラーをスローしていないかどうかを確認できます)。どのようにそれを動作させることができますか? RegExの後方参照を変数として渡すには?
class regexMap {
constructor(map) {
this.map = map;
}
replace(str){
for (var i = 0; i < this.map.length; i++){
var regexp = new RegExp(this.map[i][0], 'ig');
str = str.replace(regexp, this.map[i][1].apply(this));
}
return str;
}
}
// EXAMPLE:
var map = [
[/FIND (.*)/g,function(){
var br = '$1'; // Don't work.
if(br != '' && br != undefined){
return 'find(\'$1\');'
} else {
console.error('Find requires a string');
return;
}
}],
];
console.log(new regexMap(map).replace("FIND This is a string\nFIND "));
ありがとう:
これは、コードです!
を、あなたは*キャプチャグループ*ではなく、後方参照を意味していますか?たとえば、 '(。*)'グループの内容である 'br 'を探していますか? –
@ T.J。 Crowder "たとえば、(*。)グループのコンテンツにbrをお探しですか? - はい、そうです。 –