Format de téléphone et numéros de carte de crédit en AngularJS
En Question (mise en forme de numéro de téléphone):
Je vais avoir à le format de numéro de téléphone dans AngularJS, mais il n'y a pas de filtre. Est-il possible d'utiliser le filtre de monnaie ou de format de 10 chiffres à (555) 555-5255
? et encore de préserver le type de données du champ entier?
Question de deux (masquage du numéro de carte de crédit):
J'ai une carte de crédit champ qui est mappé à AngularJS, comme:
<input type="text" ng-model="customer.creditCardNumber">
qui retourne le nombre entier (4111111111111111
). Je tiens à le masquer avec xxx les 12 premiers chiffres et d'afficher uniquement les 4 derniers. Je pensais sur l'utilisation de filtre: limite de ce mais ne sais pas vraiment comment. Des idées? Est-il possible de aussi format le avec des tirets, mais encore conserver le type de données integer? sorte de 4111-1111-1111-1111
.
- Les numéros de téléphone et numéros de carte de crédit sont à la fois complexes constructions qui pourraient nécessiter des complexes de l'INTERFACE utilisateur. Ils ont droit à leur propre question, plutôt que d'être réunis en un seul comme cela.
- Sujet de votre question: N'utilisez pas d'entier que le type de données non-champs numériques. Les téléphones, les codes postaux et les numéros de document ne sont pas numériques (vous ne serez jamais à faire tout les maths avec eux) et sont mieux traitées comme des chaînes.
Vous devez vous connecter pour publier un commentaire.
Aussi, si vous avez besoin de formater numéro de téléphone sur la sortie de données, vous pouvez utiliser un filtre personnalisé comme celui-ci:
Alors vous pouvez utiliser ce filtre dans votre modèle:
J'ai créé un AngularJS module pour gérer ce problème au sujet de l'phonenumbers pour moi avec une coutume de la directive et de l'accompagnement de filtre.
jsfiddle exemple: http://jsfiddle.net/aberke/s0xpkgmq/
Filtre d'exemple:
<p>{{ phonenumberValue | phonenumber }}</p>
Filtre code:
Directive exemple d'utilisation:
Directive code:
Code complet avec module et comment l'utiliser:
https://gist.github.com/aberke/042eef0f37dba1138f9e
Comme shailbenq suggéré, phoneformat est génial.
Incluent le téléphone format dans votre site web. Créer un filtre pour l'angle de module ou de votre application.
Ensuite, vous pouvez utiliser le filtre dans votre code HTML.
Si vous souhaitez utiliser le filtre de votre contrôleur.
J'ai aussi trouvé que le plugin JQuery qui est facile à inclure dans votre Angulaire de l'Application (également avec bower :D), et qui de vérifier tout les codes de pays avec leurs masques :
intl-tel-entrée
Vous pouvez ensuite utiliser la
validationScript
option afin de vérifier la validité de la saisie de la valeur.Angular-ui a une directive pour le masquage d'entrée. C'est peut-être ce que vous voulez pour le masquage (malheureusement, la documentation n'est pas grande):
http://angular-ui.github.com/
Je ne pense pas que cela va aider à affaiblir le numéro de carte de crédit, cependant.
Vous pouvez aussi vérifier si masque de saisie formateur.
Ce est une directive et il est appelé
ui-mask
et aussi que c'est une partie deangular-ui.utils
bibliothèque.Voici de travail: Live exemple
C'est la manière la plus simple. De base je l'ai pris de http://codepen.io/rpdasilva/pen/DpbFf, et fait quelques modifications. Pour l'instant le code est plus simple.
Et vous pouvez obtenir: dans le contrôleur "4124561232", en vue "(412) 456-1232"
Filtre:
Et de la directive:
Essayez d'utiliser phoneformat.js (http://www.phoneformat.com/), vous pouvez non seulement le format de numéro de téléphone basé sur les paramètres régionaux utilisateur (fr-fr, ja-JP, fr-fr, de-de etc) mais il valide également le numéro de téléphone. Son très robuste, basé sur la bibliothèque sur googles libphonenumber projet.
Vous pouvez utiliser ng-modèle qui est plus facile et plus de lumière.
http://tutorialzine.com/2014/12/learn-regular-expressions-in-20-minutes/.
Ici u peut savoir à ce sujet,,,juste quelques mots significatifs,,,pas besoin d'une directive ou d'un filtre,,,,
J'ai pris aberke de la solution et l'a modifié pour l'adapter à mon goût.
Mon Code Pen
JS:
HTML:
J'ai modifié le code pour afficher le téléphone dans ce format de Valeur: +38 (095) 411-22-23
Ici vous pouvez le vérifier entrez description du lien ici
Vous aurez besoin pour créer des contrôles de formulaire (les directives) pour le numéro de téléphone et de la carte de crédit. Voir la section "mise en Œuvre personnalisée de contrôle de formulaire (à l'aide de ngModel)" sur la les formes page.
Comme Narretz déjà mentionné, Angular-ui Masque de la directive devrait vous aider à démarrer.
Simple filtre à quelque chose comme ceci (utiliser le numérique en classe sur l'extrémité d'entrée du filtre charchter dans []):
Ici est la façon dont j'ai créé le ssn directive, qui vérifie la présence de la le modèle, et j'ai utilisé RobinHerbots
jquery.inputmask
J'ai résolu ce problème avec un filtre Angulaire ainsi, mais le mien prend avantage de regex de capturer les groupes et donc le code est vraiment court. Je le coupler avec une autre
stripNonNumeric
filtre pour désinfecter l'entrée:La
phoneFormat
filtrer correctement les formats d'un numéro de téléphone avec ou sans le code de zone. (Je n'ai pas besoin de numéro international de soutien.)Utiliser simplement:
La regex pour le
stripNonNumeric
filtre est venu de ici.Trouver Plunker pour le Formatage des Numéros de Carte de Crédit utilisant angularjs directive. Format des Numéros de Carte de xxxxxxxxxxxx3456 Obtenues.
var App = angular.module('App', ['xeditable']);
Et ensuite utiliser ses construit en fonction dans votre code HTML comme suit:
<div>{{ value|number:2 }}</div>