1

メールアドレスを検証するこの機能があります。jsLintは、一部の文字がエスケープされていないことを示す正規表現でエラーを出します。

それらを正しくエスケープする方法はありますか?

var validateEmail = function(elementValue){
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(elementValue);
};
4

2 に答える 2

7

使用している正規表現有効です。しかし、JSLint-は、文字クラスの前にエスケープ記号がないことについて不平を言っていると思います。

/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}$/

文字クラスの内部をエスケープする-必要があるのは、文字クラスの先頭または末尾にない場合、または2つの文字間で使用されたときに範囲を示していない場合のみです。

有効な例を次に示します。

/[-xyz]/    // "-", "x", "y", "z"
/[xyz-]/    // the same as above
/[-]/       // "-"
/[a-z-]/    // "a"-"z", "-"
/[a-b-c]/   // "a"-"b", "-", "c"
于 2010-09-23T18:33:41.627 に答える
1

何を逃れる必要があるのか​​すぐにはわかりません。正規表現を試してみる/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/iことをお勧めします。私はそれを少し必要+%し、最初のフィールドに追加しました。

于 2010-09-23T18:40:28.897 に答える