URL输入<input type="url">
获取pattern
属性,该属性允许我们指定JavaScript Regex来验证输入值。
在此MDN示例中,提供的模式是pattern="https://.*"
,它期望https
协议。这意味着http
值将不接受。
<label for="url">Enter an https:// URL:</label>
<input type="url" name="url" id="url"
placeholder="https://example.com"
pattern="https://.*" size="30"
required>
并非所有URL都是HTTPS
,所以此选项过于严格吗?
在解释模式属性的文档中说:
如果指定的模式未指定或无效,则没有常规模式 应用表达式并完全忽略了此属性。
我认为这意味着如果不包含模式属性,那么www.example.com
的值将被接受。但是,似乎并非如此。
问题:我们如何使用URL输入来灵活处理http
和https
值?此外,如果用户能够在不指定协议的情况下简单地输入www.example.com
,似乎会更简单。
将 ?
添加到模式
pattern="https?://.*"
?
制造s
可选。