我正在创建一个表单,我希望我的输入有一个特殊的模式:
我想要一个由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>
答案 0 :(得分:0)
你的正则表达式总共指定了11个数字 - 2个字符后跟9.只需将长度说明符更改为{8}
,以便在前2个字符后恰好匹配8个字符。
答案 1 :(得分:0)
您当前的模式实际上匹配 11个数字:
^[9][2-6][0-9]{9,9}$
如果你想要十位数,那么最终数字范围的数量应该是8,而不是9:
^[9][2-6][0-9]{8}
另请注意,如果数量是固定数字,例如8,那么您不需要指定范围,即您可以使用[0-9]{8}
而不是[0-9]{8,8}
。