我试图限制用户在HTML文本框中仅插入4位数字0-9。
我尝试如下,但它只允许两位数。
<input type="text" name="pincode" maxlength="4" id="pin" pattern="^0[1-9]|[1-9]\d$" required/>
让我澄清一下:任何^[0-9]{4}$
或^\d{4}$
有效的正则表达式都只能将值限制为4位数字。但是,默认情况下,pattern
HTML5属性值已经固定:
用于该属性的正则表达式语言是相同的,在JavaScript中使用,不同的是图案属性与整个值匹配,而不仅仅是任何子集(有点仿佛它隐含了
^(?:
在图案的开始和一个)$
在结束)。
因此,只使用pattern="\d{4}"
:
input:valid {
color: green;
}
input:invalid {
color: red;
}
<form name="form1">
<input type="text" name="pincode" maxlength="4" id="pin" pattern="\d{4}" required/>
<input type="Submit"/>
</form>
顺便说一句,你^0[1-9]|[1-9]\d$
是因为它匹配任何模式匹配,只有2位数字输入0
,然后从任何数字1
来9
,或者从任意数字1
至9
后跟任何数字。
另外,请注意,pattern="\d{4}"
属性不会阻止在字段中输入非数字符号。有关如何解决此问题的信息,请参见如何防止在输入字段中键入无效字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句