正则表达式不允许电子邮件中的任何位置的空格

时间:2016-06-29 10:07:08

标签: javascript html angularjs regex

我正在尝试使用正则表达式验证电子邮件地址,以便在电子邮件中的任何位置添加空格时会引发错误。我正在使用的当前正则表达式是:

<input type="email" class="form-control" name="username" ng-     model="username" id="email" placeholder="Email" ng-pattern='/^(([^<>()\    [\]\\.,;:\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,}))$/' required />
<span ng-show="login.username.$error.pattern">This email format is invalid!     </span>

问题是它允许我最后添加空格。如何修改它,以便如果我最后添加一个空格,则会触发错误消息?

1 个答案:

答案 0 :(得分:1)

angularJs(1.5.7)的最新版本包括一些电子邮件地址验证改进。

您可以检查提交here

第28行对应于已提交的正则表达式:

var EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/;

在指令代码下方,您可以使用测试来验证正则表达式。它会检查空白区域。