使用ngpattern对电子邮件进行域名验证

时间:2016-09-29 17:16:07

标签: angularjs

我正在尝试使用ngpattern验证angularjs中的电子邮件。我是角色的新手,我在网上搜索过,我得到了一些例子,但我对设置ngpattern的语法感到困惑。

示例代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
</head>
<body ng-app="app">
    <div ng-controller="controllerName">
        <ng-form name="mailForm">
            Email: <input type="text" ng-model="mail" name="mail" ng-pattern="re" /><br />
            <span ng-show="mailForm.mail.$error.pattern" style="color:red">Please enter correct email address.</span>
        </ng-form>
    </div>
    <script>
    var app = angular.module("app", []);
    app.controller('controllerName', ['$scope', function ($scope) {
        $scope.mail = "visrosoftware@gmail.com";
        $scope.re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    }]);
</script>
</body>
</html>

这里的代码我不知道ngpattern值是什么意思。 我正在尝试验证电子邮件地址的域名, 请帮忙。

1 个答案:

答案 0 :(得分:0)

可能是你提供了错误的模式。  请尝试以下方法:

<div ng-app ng-controller="formCtrl">
   <ng-form name="mailForm">
      Email: <input type="text" ng-model="mail" name="mail" ng-pattern="re" /><br />
     <span ng-show="mailForm.mail.$error.pattern" style="color:red">Please enter correct email address.</span>
  </ng-form>
</div>

function formCtrl($scope){
    $scope.re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/
}

同时检查小提琴演示Fiddle

希望它能帮到你!!