在带有输入类型url的html5中,有效URL的默认规则是什么?如果我们还在类型旁边指定自定义模式属性,它是否会覆盖默认的验证规则?例如在下一行中,将pattern属性ovrerride设为默认规则吗?
<input type="url" name="website" pattern="https?://.+" title="Include http://">
答案 0 :(得分:2)
Per the requirements in the HTML spec,是的,input
值确实取代了元素输入类型的默认验证要求:
如果
pattern
元素指定了multiple
属性,并且属性的值被编译为只指定了“u”标志的JavaScript正则表达式,则编译成功,然后生成正则表达式是元素的编译模式正则表达式。约束验证:如果元素的值不是空字符串,并且未指定元素的
type
属性,或者它不适用于给定{{1}的输入元素属性的当前状态,并且元素具有已编译的模式正则表达式,但该正则表达式与元素的值的整体不匹配,则该元素遇到模式不匹配。
在浏览器中试用您的代码段:例如,如果您在该控件中输入ftp://foo
,浏览器会向您显示一条消息,说明“匹配请求的格式:包含http:// 强>”。