0

私はjavascriptを使用してテキストの大きなチャックから情報を抽出するプログラムに取り組んでおり、似たようなものの以前の同僚のコードを見ていると、.exec()の結果を保存してその.indexを実行するとわかりました変数それはあなたに配列内のその部分文字列のインデックスを与えます。

Example:

var str="I found this for you!";
var pattern=/this/igm;
var result=pattern.exec(str);
document.write("\"This\" Index = " +  result.index + ".");

Result:

"This" Index = 8.

オンラインで調べたところ、exec()が配列を返し、配列に.indexプロパティがないように見えました。.indexを検索すると、index()が表示されるようです。

ここで何が起こっているのですか?なぜこれが機能するのですか?また、これに関連して他にできることがあるかどうか疑問に思っています(.lastindexなど)。

4

2 に答える 2

2

indexは、によって配列に追加される特別なプロパティexecです。デフォルトで必ずしも存在する必要はなく、動作を自分で再現するのは非常に簡単です。

var example = [1, 2, 3];
example.index = 15;
于 2012-07-12T21:29:20.273 に答える
2

これが何をするかについての素晴らしいリソースexecです。のような追加のプロパティを持つ配列を返すだけでなくindex、使用された正規表現オブジェクトを変更します。

これを試して:

var str="I found this for you!";
var pattern=/this/igm;
var result=pattern.exec(str);
for(var i in result){
    console.log("i: " + i);
    console.log("result[" + i + "]: " + result[i]);
}

// i: 0
// result[0]: this
// i: index
// result[index]: 8
// i: input
// result[input]: I found this for you!
于 2012-07-12T21:33:27.593 に答える