7
votes

JS angulaire JS Validation avec les caractères Unicode

J'ai un formulaire d'inscription pour une application et JS angulaire est responsable de sa validation.

J'ai rencontré un problème lorsque JS anguleux n'accepte pas une adresse électronique qui a Apostrophe. "PEART'LPEERH.SHIN@XYZ.com" .

J'ai découvert que Angularjs n'aimait pas les caractères Unicode dans l'adresse e-mail.

Quelqu'un d'autre a-t-il rencontré un problème comme celui-ci, je suis intéressé à connaître mes options pour vous éloigner de ce bogue dans Angularjs.

Toutes les intrants sont appréciés. Merci!


1 commentaires

Avez-vous envisagé de rédiger une fonction de validation personnalisée? jsfiddle.net/adamdbradley/qdk5m


5 Réponses :


11
votes

angularjs utilise cette expression régulière pour tester le courrier électronique: https: //github.com/angular/angular.js/blob/master/src/ng/directive/input.js#l4

Ce que vous pourriez faire est de rédiger une directive qui le vérifie vous-même. Copiez simplement celui de Angularjs et utilisez votre propre Regexp: https://github.com/angular/angular.js/blob/master/src/ng/directif/input.js#l606-l614 p> xxx pré>

Ensuite, vous pouvez simplement faire: p>

<input nanu-email ng-model="userEmail">


1 commentaires

Alternativement, il peut simplement utiliser



17
votes

Si avoir HTML5 n'est pas critique, vous pouvez utiliser et validation de modèle xxx

Et vous pouvez utiliser regex que @andy Joslin a posté dans sa réponse xxx


5 commentaires

La regex que vous avez fournie n'a pas répondu à la question de l'Apostrophe. J'ai ajouté "" "dans la regex dans le fichier angular.js, et cela a fonctionné. Je n'ai pas changé le type d'entrée sur "Texte" non plus.


J'ai vérifié votre réponse, car cela pourrait aider quelqu'un avec des problèmes comme ceux-ci avec l'utilisation de NG-Modèle.


Lorsque vous utilisez cette expression directement dans le motif NG sans variable, le \. doit être échappé deux fois comme il s'agit d'une expression dans une chaîne. \\.


FYI est important Si vous écrivez une application mobile pour afficher un clavier approprié pour la saisie de courrier électronique


essayé cette regex, n'a pas fonctionné pour'üñictionøðé@example.com.com



1
votes

Je viens de mettre à jour la regex dans le fichier angulaire.js (ajouté "< '" dans l'expression) et cela a fonctionné, sans faire d'autres modifications.

e-mail_regexp = /^[a-za-z0-9._%+- '' '' '' ''+/strong >@[a-za-z0-9.-]+.[a-za-z ] {2,4} $ /. Merci Vittore, pour me donner l'idée de mettre à jour Regex. :)


0 commentaires

0
votes

Pourquoi revenez-vous indéfini?

refactoring de la fonction: xxx


0 commentaires

0
votes

Angular Ne prend pas en charge l'apostrophe ( ') dans l'identifiant de messagerie. Si vous devez valider l'apostrophe en angulaire, vous devez modifier l'expression régulière de: xxx

à: xxx

Ça fonctionnera Parfaitement.


0 commentaires