我们可以覆盖内置在html5输入类型url或电子邮件中的默认验证吗



在输入类型为url的html5中,有效url的默认规则是什么?如果我们还指定了一个自定义模式属性,那么类型会覆盖默认的验证规则吗?例如,在下面的行中,模式属性ovrerride会遵循默认规则吗?

<input type="url" name="website" pattern="https?://.+" title="Include http://">

根据HTML规范中的要求,是的,pattern值确实取代了元素输入类型的默认验证要求:

如果input元素指定了pattern属性,并且该属性的值在编译为仅指定了"u"标志的JavaScript正则表达式时编译成功,则生成的正则表达式就是该元素的编译模式正则表达式

约束验证:如果元素的值不是空字符串,并且没有指定元素的multiple属性,或者在给定其type属性的当前状态下,它不应用于输入元素,并且元素具有编译模式正则表达式,但该正则表达式与元素的整个值不匹配,则该元件正遭受图案失配。

在浏览器中尝试您的代码段:例如,如果您在该控件中输入ftp://foo,浏览器会给您一条消息,内容类似于"匹配请求的格式:包括http://"。

最新更新