更新 问题可能与我测试的方式有关吗? 我通过在浏览器中进行更改(通过开发人员工具),更改了ng-pattern并期望验证通过来测试了这一点。 也许代码更改(在浏览器中)没有被提取,也就是说,重新评估没有完成?
我正在尝试使用http://www.regular-expressions.info/email.html
中的以下电子邮件地址模式\A[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\z
我的代码:
<input type="email" name="email" ng-model="email" ng-pattern="/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/" id="email-1" value="" required="" class="ng-pristine ng-untouched ng-empty ng-valid-email ng-invalid ng-invalid-required ng-valid-pattern">
这是区分大小写的。我尝试过使用&#39; i&#39;修改。
"/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i"
但是,它仍然不接受大写字符(显示无效的电子邮件错误消息)。
我遇到了https://github.com/angular/angular.js/issues/1437。但是,我使用的是更高版本(1.2)。
我也试过A-Z,也没有运气。
"/^[A-Za-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/"
如何使这种模式不区分大小写?
感谢您的帮助。
答案 0 :(得分:0)
如所怀疑的那样,问题就是我测试的方式。 “/我工作。 当我通过浏览器编辑代码(添加“/ i”)进行测试时,“/ i”无效。但是,当我更改代码时(在相应的html / javascript文件中)工作。 让我想知道为什么浏览器中没有这样的改变。