如果我想要0到22之间的数字,我如何使用模式验证进行输入?我知道我可以使用:
<input type="number" min="0" max="22" />
但是我必须使用type="text"
我正在尝试使用该正则表达式:/^(0?[1-9]|2[012])$/
但它不是我所期望的。
任何人都可以帮助我吗?
答案 0 :(得分:2)
你很接近,但你没有考虑以1
开头的数字:
/^([0-1]?[0-9]|2[0-2])$/
答案 1 :(得分:1)
从0到22,您需要使用
pattern="[10]?[0-9]|2[012]"
请注意,您不需要使用^
和$
,因为pattern
属性默认使用^(?:
(在开头)和{)$
包装正则表达式{1}}(最后)。
如何运作:[10]?[0-9]
匹配可选的1
或0
及其后的任何数字(即0
/ { {1}}到00
),或(19
)|
匹配2[012]
,然后2
,0
或{{1} }。
请参阅regex demo
1
&#13;
2
&#13;