Comment valider l'adresse e-mail en utilisant angularJs ng-modèle
Suis en train de valider un e-Mail de l'id de domaine en utilisant angularJs ng-patron de la directive.
Mais je suis nouveau sur AngularJs. J'ai besoin d'afficher un message d'erreur dès que l'utilisateur entre dans la mauvaise id e-mail.
Le code que j'ai ci-dessous essaie de résoudre. Aidez-moi avec l'aide de ng-modèle pour obtenir le bon résultat.
<script type="text/javascript" src="/Login/script/ang.js"></script>
<script type="text/javascript">
function Ctrl($scope) {
$scope.text = 'enter email';
$scope.word = /^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/;
}
</script>
</head>
<body>
<form name="myform" ng-controller="Ctrl">
<input type="text" ng-pattern="word" name="email">
<span class="error" ng-show="myform.email.$error.pattern">
invalid email!
</span>
<input type="submit" value="submit">
</form>
</body>
- avez-vous eu un coup d'oeil à stackoverflow.com/questions/18900308/...
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez valider l'email puis utiliser input type="email" à la place du type="texte". AngularJS a l'email de validation de la boîte, donc pas besoin d'utiliser ng-motif pour cela.
Voici l'exemple de la documentation originale:
Pour plus de détails, lire cette doc: https://docs.angularjs.org/api/ng/input/input%5Bemail%5D
Live exemple: http://plnkr.co/edit/T2X02OhKSLBHskdS2uIM?p=info
UPD:
Si vous n'êtes pas satisfait avec e-mail intégré au programme de validation et vous souhaitez utiliser votre personnalisé RegExp modèle de validation puis ng-patron de la directive peut être appliquée et selon la la documentation le message d'erreur peut être affiché comme ceci:
Plunker: https://plnkr.co/edit/e4imaxX6rTF6jfWbp7mQ?p=preview
$scope.email
ne fonctionnera pas ici, en est un exemple-
dans les noms de domaine, le reg ex ne le permet pas.Il y a bel exemple comment traiter ce genre de problème portées intégré dans les validateurs angulardocs. J'ai seulement ajouté plus stricte de la validation du modèle.
Et ajoutez simplement
@
personnage dans la regex, comme suit:/^[_a-z0-9]+(\.[_a-z0-9]+)*@@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5})$/
a-z
modèles doivent être remplacés para-zA-Z
.En fonction de la réponse de @scx ,j'ai créé une validation de l'interface
Et ajoutez simplement :
css
html
C'est jQuery e-Mail de Validation à l'aide de Regex Expression. vous pouvez également utiliser le même concept pour AngularJS si vous avez des idée d'AngularJS.
Source.
Vous pouvez utiliser ng-messages
inclure le module
en html
Ci-dessous est pleinement qualifié de modèle pour l'email de validation.
some@thing
et cette regex l'accepterMaintenant, Angulaire 4 a programme de validation d'email intégré
https://github.com/angular/angular/blob/master/CHANGELOG.md#features-6
https://github.com/angular/angular/pull/13709
Juste ajouter e-mail à la balise. Par exemple
angularjs contrôleur de chemin, juste un exemple pour rechercher un ou plusieurs e-mail dans le corps d'un message.
J'ai essayé @Joanna de la méthode et testé sur les sites suivants et ça ne fonctionne pas.
J'ai ensuite modifié et il a travaillé.
J'ai essayé avec le dessous de regex il fonctionne très bien.
L'Email de validation : \w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*
Passer un peu de temps pour le faire fonctionner pour moi.
Exigence:
unique ou une liste séparée par des virgules des e-mails avec des domaines se terminant [email protected] ou [email protected]
Contrôleur:
HTML:
Je l'ai trouvé bon en ligne regex outil de test.
Couvert mon regex avec des tests:
https://regex101.com/r/Dg2iAZ/6/tests
Utilisation ci-dessous expression régulière
Il permet