2017-02-25 5 views
0

das ist mein EingangEmail Validierung funktioniert nicht in angularjs?

[email protected] 

Bindestrich ist nicht in EMAILID immer ungültigen E-Mail-ID arbeitet dies mein ng-Muster

<div class="form-group"> 
    <div class="input-group"> 
     <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span> 
     <input class="form-control" type="email" id="email" name="email" placeholder="Enter Email" ng-model="user.email" ng-pattern="/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/" noncapitalize required /> 
    </div> 
    <div style="color: red" id="emailError"></div> 
    <span style="color:red;" class="email-error" ng-show="loginForm.submitted && loginForm.email.$error.required">Required</span> 
    <span style="color:red" class="error" ng-show="loginForm.submitted && loginForm.email.$error.pattern">Email not valid</span> 
</div> 
+0

Sie können die 'ng-pattern' entfernen, wenn Sie nicht wirklich brauchen es. HTMLs 'type =" email "' sollte ausreichen, oder? – vader

+0

Sie benötigen eine regExp, um eine E-Mail zu validieren, oder Sie benötigen das spezielle 'regExp' in Ihrer Frage. bcoz Sie scheinen ein Problem mit Ihrem 'Regex' zu haben – Sravan

+0

@Sravan Ich brauche ein regExp um eine E-Mail zu validieren nicht ein bestimmtes dank –

Antwort

2

ist hier ein regexp für E-Mail-Validierung.

^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$

können Sie testen diese regexp here

<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body ng-app=""> 
 

 
<p>Try writing in the input field:</p> 
 

 
<form name="myForm"> 
 
<div class="form-group"> 
 
    <div class="input-group"> 
 
     <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span> 
 
     <input class="form-control" type="text" id="email" name="email" placeholder="Enter Email" ng-model="user.email" ng-pattern="/^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/" noncapitalize required /> 
 
    </div> 
 
    <div style="color: red" id="emailError"></div> 
 
    <span style="color:red;" class="email-error" ng-show="myForm.email.$error.required">Required</span> 
 
    <span style="color:red" class="error" ng-show="myForm.email.$error.pattern">Email not valid</span> 
 
</div> 
 
</form> 
 

 

 
</body> 
 
</html>

FÜHREN SIE DIE OBEN SNIPPET

Here is a working DEMO

+0

nice Ji das ist, was ich erwarte danke –

+0

Froh, Ihnen zu helfen. :) – Sravan

1

Ich denke, Sie nicht zulassen wollen ‚-‘ in der E-Mail-Adresse zu sein, hier ist das, was ich bekam ng-pattern verwenden und wenn Sie wollen ‚-‘ erlaubt Check 2. Beispiel werden:

1 If) '-' nicht erlaubt ist:

angular.module('myApp', []) 
 
    .controller('MyController', function($scope) { 
 
    $scope.user = { 
 
     email: '[email protected]' 
 
    }; 
 

 
    $scope.emailPattern = /^(([^-<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
 
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="MyController"> 
 

 
    <form name="loginForm"> 
 
    <div class="form-group"> 
 
     <div class="input-group"> 
 
     <input class="form-control" id="email" name="email" placeholder="Enter Email" ng-model="user.email" ng-pattern="emailPattern" noncapitalize required /> 
 
     </div> 
 
     <div style="color: red" id="emailError"> 
 
     <span style="color:red;" class="email-error" ng-show="loginForm.email.$error.required">Required</span> 
 
     <span style="color:red" class="error" ng-show="loginForm.email.$error.pattern">Email not valid, doesn't match the provided pattern</span> 
 
     </div> 
 
    </div> 
 
    </form> 
 

 
</div>

2) Wenn '-' erlaubt ist:

angular.module('myApp', []) 
 
    .controller('MyController', function($scope) { 
 
    $scope.user = { 
 
     email: '[email protected]' 
 
    }; 
 

 
    $scope.emailPattern = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
 
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="MyController"> 
 

 
    <form name="loginForm"> 
 
    <div class="form-group"> 
 
     <div class="input-group"> 
 
     <input class="form-control" id="email" name="email" placeholder="Enter Email" ng-model="user.email" ng-pattern="emailPattern" noncapitalize required /> 
 
     </div> 
 
     <div style="color: red" id="emailError"> 
 
     <span style="color:red;" class="email-error" ng-show="loginForm.email.$error.required">Required</span> 
 
     <span style="color:red" class="error" ng-show="loginForm.email.$error.pattern">Email not valid, doesn't match the provided pattern</span> 
 
     </div> 
 
    </div> 
 
    </form> 
 

 
</div>

Verwandte Themen