将包含撇号的电子邮件绑定到角度模型

时间:2015-11-03 16:34:23

标签: angularjs html5 validation

我有一个输入类型的电子邮件,我根据自己的自定义正则表达式验证。它反过来就像一个角度模型,如:

JS

$scope.user = {};

HTML

<input type="email" ng-model="user.email" />

我希望电子邮件允许撇号,但电子邮件不会绑定到模型,除非它通过内置的html5验证。我想覆盖或关闭此验证,因为我有自己的自定义正则表达式。

我已经尝试将novalidate标记添加到表单包装器中,并且还在输入中添加了一个模式但没有到达任何地方。请参阅jsfiddle: http://jsfiddle.net/HB7LU/19499/

任何想法都非常感激

C

编辑:我没有使用type =“text”的原因是因为我希望从移动设备访问时电子邮件键盘设置在那里。

2 个答案:

答案 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}$/.

它会完美运作。