文字列内の電子メールアドレスを照合するためのこの正規表現があります。
[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})
これは世界で最高の正規表現ではありませんが、私の使用には十分です。
私がこのようなjavascriptでこれを使用しているとき:
var emails = string.match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})");
最初のメールアドレスのみを照合しています。これは、g修飾子を使用していないため正常です。
問題は、次のようなg修飾子を使用している場合です。
var emails = email[0].match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})g");
var emailsがnullであるため、一致が機能していません。
よろしければ、これを手伝ってください。
ありがとうございました。