2017-08-28 3 views
3

私は[email protected]形式でメールを入力する必要があるメールフォームフィールドを作成しようとしていますが、ビジネス用のメールだけを受け入れることもできます(Gmail、ホットメールなど)フォームフィールドで複数のパターンを使用する

私は独立して動作する2つのフィールドパターンを作成しましたが、一緒に動作させることはできません。

は、これらの無料の電子メールドメインを許可していません [email protected]形式
pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$" 

が必要です。ビジネスメールのみ。ここ

pattern="^(?!.*@(?:live|gmx|yahoo|outlook|msn|icloud|facebook|aol|zoho|yandex|lycox|inbox|myway|aim|goowy|juno|(?:hot|[gy]|google|short|at|proton|hush|lycos|fast)?mail)\.\w+$).*$" 

は私のフォームコードである:ここ

<form method="POST" action="#"> 

    <input type=hidden name="oid" value="00D70000000KCoG"> 
    <input type=hidden name="retURL" 
    value="#"> 

    <label for="email">Email</label><input id="email" maxlength="80" 
    name="email" size="30" type="email" 
    oninvalid="setCustomValidity('Please enter your business email here.')" 
    onchange="try{setCustomValidity('')}catch(e){}" pattern="[a-z0- 
    9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$" required /> 

    <input type="submit" name="submit" value="Submit"> 
    </form> 
+0

私は好奇心から尋ねます - 「パターン=」[a-z0-9 ._%+ - ] + @ [a-z0-9 .-] + \。[az] {2 、4} $ "'を指定し、 'type =" email "'を指定しますか? – Rounin

+1

type = "email"は、メールをa @ bで入力することができますが、パターンは "[a-z0-9 ._%+ - ] + @ [a-z0-9 .-] + \ 2,4} $ "は[email protected]形式のメールのみを許可します。 –

+0

@Felicia下記の私の答えをチェックし、それがうまくいくか、もっと助けが必要かどうかをお知らせください。 –

答えて

1

を合わせ、2つのパターンがある:

pattern="[a-z0-9._%+-][email protected](?!(?:live|gmx|yahoo|outlook|msn|icloud|facebook|aol|zoho|yandex|lycox|inbox|myway|aim|goowy|juno|(?:hot|[gy]|google|short|at|proton|hush|lycos|fast)?mail)\.\w+$)[a-z0-9.-]+\.[a-z]{2,4}" 

注終了時に開始時^$は、必要に応じていないことそれらは暗黙的です:pattern値は、入力全体を一致させるために^(?:)$でラップされます。アウエー。

regex demoを参照してください。

詳細

  • ^ - 暗黙の - 文字列
  • [a-z0-9._%+-]+のスタート - 一つ以上の文字、数字、._%+または-
  • @から@
  • (?!(?:live|gmx|yahoo|outlook|msn|icloud|facebook|aol|zoho|yandex|lycox|inbox|myway|aim|goowy|juno|(?:hot|[gy]|google|short|at|proton|hush|lycos|fast)?mail)\.\w+$) - 否定的な先読み1+小文字のASCII文字、数字、.又は/及び-
  • \. - - ドット
  • パターンは現在位置(すなわち @後に)
  • [a-z0-9.-]+のすぐ右側に一致する場合、一致に失敗します
  • [a-z]{2,4} - 2〜4小文字のASCII文字。

注:文字クラスにA-Zを追加したい場合があります:[a-z0-9._%+-]+ =>[\w.%+-]+[a-z0-9.-]+ =>[a-z0-9A-Z.-]+

関連する問題