简体   繁体   English

MD-chips电子邮件验证

[英]Md-chips email validation

Md-chips email validation MD-chips电子邮件验证

How to create an email validation for md-chips? 如何为md-chips创建电子邮件验证? My expression below is not working, since, the ng-keypress directive is called whenever I type something. 我在下面的表达式不起作用,因为每当我键入内容时都会调用ng-keypress指令。

Suggestions? 有什么建议吗?

 <div class="row">
   <div class="col-md-12" ng-cloak="">
     <md-context class="md-padding">
       <md-chips md-separator-keys="ctrl.customKeys" ng-keypress="ctrl.validateEmail()" ng-model="ctrl.ConfiguracaoRegra.Emails" md-max-chips="20" placeholder="Inserir um email..." ng-required="true" type="email"></md-chips>
       </md-context>
   </div>
 </div>

   vm.validateEmail = function (keyEvent) {
    var emailValue = angular.element(".md-input").val();
    var reg = /^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
    if (reg.test(emailValue)) {
        vm.isEmailValid = true;
    } else {
        vm.isEmailValid = false;
    }
};

您应该使用ng-change指令代替ng-keypress keypress,或者将md-on-addmd-on-remove (请参阅https://github.com/angular/material/issues/3580#issuecomment-347052946

My solution was: create a javascript function where I evaluate whether the ENTER was entered and use a regular expression ('/^[_a-z0-9]+(.[_a-z0-9]+)*@[a-z0 (9)] + (. [A-z0-9 -] +) * (. [Az] {2,4}) $ / '), validating by the test () method. 我的解决方案是:创建一个javascript函数,在其中评估是否输入了ENTER并使用正则表达式('/^[_a-z0-9]+(.[_a-z0-9]+)*@[a-z0 (9)] +(。[A-z0-9-] +)*(。[Az] {2,4})$ /'),通过test()方法进行验证。

  function validateEmail(x) { if (event.which === 13) { var emailValue = x; var reg = /^[_a-z0-9]+(\\.[_a-z0-9]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[az]{2,4})$/; if (!reg.test(emailValue)) { toastr.error("Digite um email válido!"); vm.ConfiguracaoRegra.Emails.pop(); } }; }; 
 <md-chips md-on-add="ctrl.validateEmail($chip)" ng-model="ctrl.ConfiguracaoRegra.Emails" md-max-chips="20" placeholder="Inserir um email..." type="email" required></md-chips> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM