我有一个输入类型的电子邮件,我根据自己的自定义正则表达式验证。它反过来就像一个角度模型,如:
JS
$scope.user = {};
HTML
<input type="email" ng-model="user.email" />
我希望电子邮件允许撇号,但电子邮件不会绑定到模型,除非它通过内置的html5验证。我想覆盖或关闭此验证,因为我有自己的自定义正则表达式。
我已经尝试将novalidate标记添加到表单包装器中,并且还在输入中添加了一个模式但没有到达任何地方。请参阅jsfiddle: http://jsfiddle.net/HB7LU/19499/
任何想法都非常感激
C
编辑:我没有使用type =“text”的原因是因为我希望从移动设备访问时电子邮件键盘设置在那里。
答案 0 :(得分:0)
如果您已有正则表达式进行验证,则可以将输入标记的类型设置为&#34; text&#34;这样它就不会进行任何验证,然后你已经创建的正则表达式可用于进行你想要的验证。此外,如果您决定更改验证的工作方式,这将允许您更改验证方法。
这是标签:
<input type="text" ng-model="user.email" />
答案 1 :(得分:0)
Angular不支持电子邮件ID中的apostrophe(')
,如果需要在角度中有效撇号,需要更改角度文件中的常规expr
(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/)
到
/^[A-Za-z0-9._%+'-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/.
它会完美运作。