首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输入模式不匹配,但它似乎在regex101中正常工作

输入模式不匹配,但它似乎在regex101中正常工作
EN

Stack Overflow用户
提问于 2018-04-27 15:53:11
回答 2查看 146关注 0票数 0

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

我想要一个由10位数字组成的数字。

我希望第一个数字是9

第二个数字为2、3、4、5或6

其他8位数字可以是0到9之间的任何数字

这是我使用的模式:

代码语言:javascript
运行
复制
pattern="^[9][2-6][0-9]{9,9}$"

我猜它在正则表达式中是有效的,但是当我提交一个像"9666311006“这样的数字的表单时,它会给出模式不匹配错误。

下面是代码:

代码语言:javascript
运行
复制
<!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>
EN

回答 2

Stack Overflow用户

发布于 2018-04-27 15:57:57

您的正则表达式总共指定了11位数字-- 2个字符后跟9个字符。只需将长度说明符更改为{8},就可以精确匹配前2个字符之后的8个字符。

票数 0
EN

Stack Overflow用户

发布于 2018-04-27 15:58:56

您当前的模式实际上与11位数字匹配:

代码语言:javascript
运行
复制
^[9][2-6][0-9]{9,9}$

如果您想要十位数的总数,则最终数字范围中的数量应为8,而不是9:

代码语言:javascript
运行
复制
^[9][2-6][0-9]{8}

还要注意,如果数量是一个固定的数字,例如8,那么你不需要指定一个范围,也就是说,你可以使用[0-9]{8}而不是[0-9]{8,8}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50057811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档