私はいくつかの正規表現をいじっていますが、いくつかの一致を見ているうちに、なぜ exec 関数が同じ数の結果を生成したのかが気になりました。
正規表現がn 個の結果を返す理由を単に受け入れるのではなく、より快適に感じることができるように、操作の内部動作について少し説明を求めているだけです。
元。
var invalidValues = new RegExp(
"\\bZIP or City & State$|" +
"\\bCity & State or ZIP$|" +
"\\bEm[ai][ia]l Address(\\s\\(Optional\\)|$)|" +
"^$", "gi");
invalidValues.exec("Zip or City & State");
//returns ["Zip or City & State", undefined]
上記の例では、「Zip or City & State」に一致する理由はわかりますが、未定義の値で 2 番目の一致が生成される理由はわかりません。
前もって感謝します。