我试图限制HTML文本框中的用户只插入4位数字0-9.
我尝试了如下,但它仅限于允许两位数字.
Wiktor Strib.. 20
让我澄清一下:将值限制为4位数的任何^[0-9]{4}$
或^\d{4}$
有效的正则表达式.但是,pattern
HTML5属性值默认已锚定:
用于该属性的正则表达式语言是相同的,在JavaScript中使用,不同的是图案属性与整个值匹配,而不仅仅是任何子集(有点仿佛它隐含了
^(?:
在图案的开始和一个)$
在结束).
所以,只使用pattern="\d{4}"
:
input:valid {
color: green;
}
input:invalid {
color: red;
}
顺便说一句,你^0[1-9]|[1-9]\d$
是因为它匹配任何模式匹配,只有2位数字输入0
,然后从任何数字1
来9
,或者从任意数字1
至9
后跟任何数字.
另请注意,pattern="\d{4}"
属性不会阻止在字段中输入非数字符号.有关如何解决此问题,请参阅如何防止将无效字符输入到输入字段中.
让我澄清一下:将值限制为4位数的任何^[0-9]{4}$
或^\d{4}$
有效的正则表达式.但是,pattern
HTML5属性值默认已锚定:
用于该属性的正则表达式语言是相同的,在JavaScript中使用,不同的是图案属性与整个值匹配,而不仅仅是任何子集(有点仿佛它隐含了
^(?:
在图案的开始和一个)$
在结束).
所以,只使用pattern="\d{4}"
:
input:valid {
color: green;
}
input:invalid {
color: red;
}
请尝试添加以下内容: