一些 HTML5 输入元素接受 pattern
属性,这是用于表单验证的正则表达式。其他一些 HTML5 输入元素,例如 input type=email
会自动进行验证。
现在看来,不同浏览器处理验证的方式是不同的。给定一个特定的浏览器,比如 Chrome,是否可以通过编程方式提取用于验证的正则表达式?或者也许那里有文档?
最佳答案
HTML5 spec当前列出了一个与 ABNF 匹配的有效电子邮件地址:
1*( atext / "." ) "@" ldh-str *( "." ldh-str )
这在 this question 中有阐述. @SLaks answer提供等价的正则表达式。
就是说,通过对源代码的一点挖掘,表明 WebKit implemented使用与 SLaks answer 基本相同的正则表达式验证电子邮件地址,即,
[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*
但是,不要求通过正则表达式验证电子邮件地址。例如,Mozilla (Gecko)使用非常基本的 finite state machine 实现电子邮件验证.因此,电子邮件验证不需要正则表达式。
关于regex - 查找 HTML5 表单用于验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786058/