我是Angular的新手,因此无法使ng-pattern验证基于REGEX的电子邮件地址。实际上,电子邮件的其他默认角度验证也会更改行为,并且当我插入ng-pattern时如果整个字段为空,则只会显示错误。最初尝试使用指令和控制器,但发现ng模式在理论上可以达到验证电子邮件的相同效果,因此决定使用此模式。
我已经使用了几种REGEX模式并从中了解了有关ng-pattern的信息,例如:ng-pattern的正则表达式验证表单验证容易的表单验证和许多其他链接,但是没有用。有人能弄清楚我需要做些什么才能使事情正常吗?
<form name="userForm" novalidate>
<div class="row">
<div class="large-12 medium-12 small-12 columns">
<label>Username</label>
<input type="email" name="username" placeholder="[email protected]" ng-model="user.username" ng-maxlength="100" ng-model-options="{ updateOn: blur }" ng-pattern = "/^(?("")("".+?(?<!\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))(?([)([(\d{1,3}\.){3}\d{1,3}])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$/" required />
<div class="error-container" ng-show="userForm.username.$dirty && userForm.username.$invalid">
<small class="error" ng-show="userForm.username.$error.required">
Your email is required.
</small>
<small class="error" ng-show="userForm.username.$error.email">
Please input a valid email.
</small>
<small class="error" ng-show="userForm.firstname.$error.maxlength">
Your email cannot be longer than 100 characters
</small>
</div>
</div>
</form>
请更改您的ng模式以匹配此正则表达式:
ng-pattern = '/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i'
如果后面的部分@
保留空白,则此正则表达式将给出错误。此正则表达式也将接受unicode
。
希望能帮助到你。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句