2014-11-21 67 views
0

我想使用正則表達式來驗證電子郵件地址。它似乎沒有做任何驗證。當我加載頁面時,由於$ pristine,提交按鈕被禁用,但只要我鍵入一個字母,該按鈕就變爲啓用狀態。另外我知道正則表達式現在只接受大寫。以下代碼是我的表單:正則表達式問題與angularjs

<form name="myForm" ng-hide="email" > 

Insert Email : <br/> 

<input type="text" name="email" ng-pattern="/^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z] 
{2,4}$/" ng-model="insert_email" required> 

<br/> 
<button ng-hide="email" 
type="submit" 
ng-disabled="myForm.email.$pristine || myForm.email.$invalid">Submit</button> 

</form> 

我不確定,但我認爲問題可能在於正則表達式本身。

+0

檢查這一點,如果它可以幫助你http://stackoverflow.com/questions/24490668/how-to-validate-email-id-in-angularjs-using-ng-pattern – Jaiff 2014-11-21 16:44:29

+0

我想你代碼,並且當我輸入一些文本時它不會激活提交按鈕。你能爲此創建一個演示嗎? – kubuntu 2014-11-21 16:46:49

+0

我使用進行電子郵件驗證。 – user321 2016-10-20 10:01:44

回答

0

取出電子郵件中myForm.email $質樸和myForm.email $無效 的樣子:。

myForm.$pristine 

myForm.$invalid 

也嘗試NG-需要,而不是的要求

0

這似乎是兩件事。它看起來像ng-pattern需要一個表達式而不是一個字符串屬性。

因此,如果您想使用inline expression,則需要將其包裝在一個字符串中。

像這樣:

ng-pattern="'^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z]{2,4}$'" 

而且,似乎有一些問題與您正則表達式。我把它改爲:

ng-pattern="'^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$'" 

它似乎工作。

Plunker Demo