サードパーティの JS ライブラリを使用しています。文字列の一部を照合するために使用される入力として、いくつかの RegExp が必要です。ここで、渡す RegExp で後読みを使用する必要がありますが、後読みは JS RegExp に実装されていません。回避策として、RegExp から派生させようとします。
function SubRegExp(pattern, matchIndex) {
this.matchIndex = matchIndex;
this.prototype = new RegExp(pattern);
this.exec = function(s) {
return [ this.prototype.exec(s)[this.matchIndex] ];
}
}
私は次のようにテストしています:
var re = new SubRegExp('m(.*)', 1);
console.log(re.exec("mfoo"));
console.log("mfoo".match(re));
私が得るものは次のとおりです。
["foo"]
["o", index: 2, input: "mfoo"]
最初の出力は期待どおりですが、2 番目の出力で何が起こっているのかよくわかりません。私は何を間違っていますか?