我已经尝试找到一个完整的模式列表,用于通过 HTML5 表单验证来验证各种类型的输入,特别url
是 ,email
等tel
,但我找不到任何类型。目前,这些输入验证的内置版本远非完美(tel
甚至不检查您输入的内容是否是电话号码)。所以我想知道,我可以使用哪些模式来验证用户在输入中输入了正确的格式?
以下是一些默认验证允许输入不应被允许的情况的示例:
type="email"
此字段允许电子邮件在 @ 之后具有不正确的域,并且它允许地址以破折号或句点开头或结尾,这也是不允许的。所以,.example-@x
是允许的。
type="url"
这个输入基本上允许任何以http://
(Chrome) 开头的输入,并且后面可以跟几个特殊字符以外的任何输入,例如那些在 URL 中具有功能的字符(\、@、#、~ 等)。在 FF 中,所有检查的是它是否以 开头http:
,然后是除此之外的任何内容:
(即使只是http:
在 FF 中也允许)。IE 的作用与 FF 相同,只是它不禁止http::
.
例如:http://.
在所有三个中都允许。也是如此http://,
。
type="tel"
目前在任何主要浏览器中都没有内置的电话号码验证功能(它的功能与 a 100% 相同type="text"
,除了告诉移动浏览器显示哪种键盘。
因此,由于浏览器在每种情况下都没有表现出一致的行为,而且它们表现出的行为是非常基本的,有很多误报,我可以做些什么来验证我的 HTML 表单(仍然使用 HTML5 输入验证)?
PS:我发布这个是因为我发现自己拥有一个完整的表单验证模式列表很有用,所以我认为它对其他人也可能有用(当然其他人也可以发布他们的解决方案)。