我正在制作一个表单,我希望我的输入有一个特殊的模式:
我想要一个由10位数字组成的数字。
我希望第一个数字是9
第二个数字为2、3、4、5或6
其他8位数字可以是0到9之间的任何数字
这是我使用的模式:
pattern="^[9][2-6][0-9]{9,9}$"
我猜它在正则表达式中是有效的,但是当我提交一个像"9666311006“这样的数字的表单时,它会给出模式不匹配错误。
下面是代码:
<!DOCTYPE html>
<html>
<body>
<form name="regForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
ID number: <input type="text" name="studentid" pattern="^[9][2-6][0-9]{9,9}$" required="required">
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
发布于 2018-04-27 15:57:57
您的正则表达式总共指定了11位数字-- 2个字符后跟9个字符。只需将长度说明符更改为{8}
,就可以精确匹配前2个字符之后的8个字符。
发布于 2018-04-27 15:58:56
您当前的模式实际上与11位数字匹配:
^[9][2-6][0-9]{9,9}$
如果您想要十位数的总数,则最终数字范围中的数量应为8,而不是9:
^[9][2-6][0-9]{8}
还要注意,如果数量是一个固定的数字,例如8,那么你不需要指定一个范围,也就是说,你可以使用[0-9]{8}
而不是[0-9]{8,8}
。
https://stackoverflow.com/questions/50057811
复制相似问题