0

サードパーティの 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 番目の出力で何が起こっているのかよくわかりません。私は何を間違っていますか?

4

1 に答える 1