2017-08-28 47 views
3

我試圖創建一個電子郵件表單字段,要求用戶輸入[email protected]格式的電子郵件,但也只允許業務電子郵件通過(沒有Gmail,雅虎, hotmail等)在表單字段中使用多個模式

我創建了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

我出於好奇 - 請問指定'pattern =「[a-z0-9 ._%+ - ] + @ [a-z0-9 .-] + \。[az] {2 ,4} $「'並指定'type =」email「'? – Rounin

+1

type =「email」允許輸入電子郵件地址a @ b,但是pattern =「[a-z0-9 ._%+ - ] + @ [a-z0-9 .-] + \。[az] { 2,4} $「僅允許使用[email protected]格式的電子郵件。 –

+0

@Felicia請在下面檢查我的答案,並讓我們知道它對您是否正常工作還是需要更多幫助。 –

回答

1

這裏有兩種模式相結合:

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值用^(?:)$包裝以匹配整個輸入v ALUE。

查看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+$) - 負面預測在失敗的比賽如果模式匹配,立即到當前位置的右邊(即@後)
  • [a-z0-9.-]+ - 1+小寫ASCII字母,數字,.或/和-
  • \. - 點
  • [a-z]{2,4} - 2至4個小寫ASCII字母。

注意:您可能要添加A-Z到字符類:[a-z0-9._%+-]+ =>[\w.%+-]+[a-z0-9.-]+ =>[a-z0-9A-Z.-]+

相關問題