Javascript HTML5验证:字段不是必需的,但如果填写,必须匹配模式?

Javascript HTML5验证:字段不是必需的,但如果填写,必须匹配模式?,javascript,regex,html,api,validation,Javascript,Regex,Html,Api,Validation,在使用HTML5验证时,我突然想到(似乎)不可能验证字段的输入,除非它是必需的 换句话说,不可能说“此字段不是必需的,但如果您填写它,它必须与模式X匹配。”例如: <textarea pattern='.{5,10}'></textarea> 在文本区域中输入1-4个字符(包括1-4个字符),运行element.willValidate和element.checkValidity()都返回true 我知道HTML5验证还不是完美的。HTML5不可能使用“仅在填写时验

在使用HTML5验证时,我突然想到(似乎)不可能验证字段的输入,除非它是必需的

换句话说,不可能说“此字段不是必需的,但如果您填写它,它必须与模式X匹配。”例如:

<textarea pattern='.{5,10}'></textarea>

在文本区域中输入1-4个字符(包括1-4个字符),运行
element.willValidate
element.checkValidity()
都返回true


我知道HTML5验证还不是完美的。HTML5不可能使用“仅在填写时验证”概念吗?

您可以在正则表达式中为完全空文本添加另一个选项

<textarea pattern='(.{5,10}|^$)'></textarea>


您是否也尝试过包含空模式
pattern='(|{5,10})>
没有尝试,只是想知道:)喊得好;我会在早上试一试。我试一试(win/ff30),事实上,对于我来说,没有所需的标志和定义的模式按预期工作:
=>接受空、
a
b
()我们在哪里提交互联网功能请求?这将非常有帮助。关于stackoverflow