电子邮件正则表达式不会在句点后验证该部分

时间:2015-02-04 18:55:43

标签: javascript regex angularjs

我正在尝试使用angular指令在我的html页面中验证电子邮件地址。

对我来说,有效的电子邮件地址是

hello@mycompany.com

以下正则表达式允许使用以下电子邮件地址

您好@ myCompany的

我可以使用哪种正则表达式也会强制执行电子邮件地址的“.com”部分,这意味着强制执行“。”以及“。”之后的任何事情。

我研究过互联网并使用了不同的列出的正则表达式,但没有一个正在工作

<div class="form-group" ng-class="{ 'has-error': registerUpdateForm.Email.$invalid }">
    <label class="col-sm-3 control-label" for="Email">Email Address</label>
    <div class="col-sm-9">
        <input required type="email" data-ng-model="auth.Email"
               data-ng-pattern="^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
               id="email" name="Email" class="form-control" />  <!--ng-pattern="matchPattern"/>-->
    </div>

</div>

2 个答案:

答案 0 :(得分:2)

预期值为Regexp或内联模式,在javascript中看起来像/pattern/。正则表达式本身看起来很好,所以只需尝试在开头和结尾添加正斜杠:

<input required type="email" data-ng-model="auth.Email"
               data-ng-pattern="/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/"
               id="email" name="Email" class="form-control" /> 

Plunker Demonstration

答案 1 :(得分:0)

<input type="email">的{​​{3}}表示电子邮件地址必须与正则表达式匹配

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

所以这对于像(未经测试的)

这样的事情是一个合理的开始
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+\.com$/

请注意,如果您想要的不仅仅是&#34; .com&#34;:W3C specification,您就不能再将顶级域名限制为{2,4}个字符了

相关问题