输入模式不匹配,而它似乎在regex101中工作

时间:2018-04-27 07:53:11

标签: html

我正在创建一个表单,我希望我的输入有一个特殊的模式:

我想要一个由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>

2 个答案:

答案 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}