我有一个表单,我需要在提交之前验证可网络路由的电子邮件地址并拒绝本地路由。 ng-pattern="email.text"
和ng-pattern="email"
都会传递失败的bob@bob
,因为它们是本地网络之外的客户电子邮件地址。
以下不告诉我我正在寻找的内容(许多人正在使用不完全符合RFC标准或不否认本地路由的基本RegEx ):
阅读http://www.regular-expressions.info/email.html,使用正则表达式引用RFC 5322
:
\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
| "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]
| \\[\x01-\x09\x0b\x0c\x0e-\x7f])*")
@ (?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
| \[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:
(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]
| \\[\x01-\x09\x0b\x0c\x0e-\x7f])+)
\])\z
有没有办法将上述内容变成需要tld-type
的RegEx,因此可以上网?具体来说,我可以在ng-pattern
中使用它,例如表单中的ng-pattern="<regex goes here>"
答案 0 :(得分:1)
我喜欢这里的人 http://www.w3.org/TR/html5/forms.html#valid-e-mail-address
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
扩展
^
[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+
@
[a-zA-Z0-9]
(?:
[a-zA-Z0-9-]{0,61}
[a-zA-Z0-9]
)?
(?:
\.
[a-zA-Z0-9]
(?:
[a-zA-Z0-9-]{0,61}
[a-zA-Z0-9]
)?
)*
$
答案 1 :(得分:-1)
Wiktor以所请求的格式注册,传递互联网可路由的电子邮件地址并拒绝本地路由:
$content = scandir('C:');