我正在尝试使用角度指令验证html页面中的电子邮件地址。
对我来说,有效的电子邮件地址是
hello@mycompany.com
以下正则表达式允许以下电子邮件地址
hello@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>
期望值是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" />
普伦克演示
<input type="email">
的 W3C 规范规定电子邮件地址必须与正则表达式匹配
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/
所以这将是类似(未经测试)的合理开始
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+.com$/
请注意,如果您想要允许的不仅仅是".com":建议的域,则不能再将顶级域限制为 {2,4} 个字符。