1

文字列にいくつかの値をキャプチャして、それらをページに返します。コードの例を次に示します。私が理解しているように、.exec は一致する値を正しい配列に格納する必要がありますか? これにより、Savage、Betsy が返されます。誰かが何が悪いのか教えてもらえますか?

var regex = /\b(Betsy)(Savage)\b/i;

var string = "My friend is Betsy Ann Savage";

var arrayMatch = null;

while(arrayMatch = regex.exec(string)){
   document.getElementById("text").innerHTML = arrayMatch[1] + ", " + arrayMatch[0];
}
4

2 に答える 2

2

このような試合はありません。(Betsy) と (Savage) の間に .* を追加できます...

于 2013-07-30T05:51:01.827 に答える
0

\b(Besty)(Savage)\bBesty、または Savage のいずれかに一致すると思われますが、そうではありません。両方の部分が組み合わされた 1 つの文字列を探しています\b(BetsySavage)\b。これは、はい、括弧で区切られた 2 つのグループがあり、それらが互いに直接隣り合っているため、正規表現エンジンは「わかりました」と言って、隣り合った両方を探します。あなたが本当にやりたいのは|、ORを表す使用だと思います。のように\b(Besty|Savage)\b

于 2013-07-30T05:50:55.507 に答える