2015-09-25 34 views
4

我正在爲AngularJs中的項目創建註冊表單。用戶可以使用他/她的電子郵件/電話註冊。我需要驗證那個特定的文本框。對angularjs中相同文本字段的電子郵件或電話號碼進行驗證

我對兩種不同的文本字段都使用ng-pattern進行驗證。但是,我怎樣才能在一個文本字段中進行驗證?

我已經更新了我的代碼,在這裏: - enter code here http://plnkr.co/edit/mCVxHxl2DIvqOYtVapRN?p=preview

+0

使用一個正則表達式是結合了這兩種正則表達式與或:'/^[_a-z0-9]+(\.[_a-z0-9 ] +)* @ [A-Z0-9 - ] +(\ [A-Z0-9 - ] +)*(\ [AZ] {2,5-})$ |。^ \ d + $ /' –

回答

2

使用/^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|(\d+$)$/

Demo

3

您可以使用管道 '|'以兩個正則表達式一起:

/<email-pattern>|<phone-pattern>/ 

所以你最終的正則表達式是:

/^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|\d+$/ 
0

可以使用角度表單驗證和NG模式指令供輸入使用ng-pattern="/^(?:\d{10}|\[email protected]\w+\.\w{2,3})$/"

Working Demo

var app = angular.module("MY_APP", []); 
 
app.controller("MyCtrl", function($scope) { 
 
    $scope.submitted = false; 
 
    $scope.submit = function(userData){ 
 
    \t console.log(userData) 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="MY_APP"> 
 
    <div ng-controller="MyCtrl"> 
 
    <form name="userForm" novalidate ng-submit="userForm.$valid && submit(userData)"> 
 
       <div class="errorMsg" ng-show="submitted==true && userForm.$invalid"> 
 
        <ul> 
 
         <li ng-show="submitted==true && userForm.emailphone.$error" class="errorMsg"> 
 
          wrong format, It should be email or 10 digit mobile number 
 
         </li> 
 
        </ul> 
 
       </div> 
 
    <input type="text" name="emailphone" ng-model="userData.user" id="emailphone" required 
 
    ng-pattern="/^(?:\d{10}|\[email protected]\w+\.\w{2,3})$/" /> 
 
    <button type="submit" ng-click="submitted = true">Submit</button> 
 
</form> 
 
</div> 
 
</div>

相關問題