首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电话号码的HTML5输入模式

电话号码的HTML5输入模式
EN

Stack Overflow用户
提问于 2018-08-16 22:15:53
回答 3查看 864关注 0票数 1
代码语言:javascript
运行
复制
pattern="^[01|02|03|07|08]{1}[0-9]{8-10}$"

我需要9-12个字符开始与01,02,03,07或08。为什么我的模式不起作用?

EN

回答 3

Stack Overflow用户

发布于 2018-08-16 22:24:05

你不需要^$。我试着简化你的模式:

  • [01|02…08]更改为0(1|2…8),因为您需要使用括号。
  • {8-10}更改为{7,10},因为您说您“需要9-12个字符”,并且-在chevybow中不起作用

下面的代码片段适用于我:

代码语言:javascript
运行
复制
<form>
  <input pattern="0(1|2|3|7|8)[0-9]{7,10}" />
  <input type="submit" />
</form>

票数 2
EN

Stack Overflow用户

发布于 2018-08-16 22:21:52

这对你来说应该是可行的

代码语言:javascript
运行
复制
^(01|02|03|07|08){1}[0-9]{8,10}$

您的问题是使用[]而不是()检查第一个数字。你需要用逻辑“或”括起来。按照你的方式,你只需要匹配任意数字或|中的一个字符。

例如:

|12345678一样,012345678应该与您正在使用的模式相匹配

票数 1
EN

Stack Overflow用户

发布于 2018-08-17 01:05:55

我认为您尝试使用alternation (01|02|03|07|08)而不是character class [01|02|03|07|08]中的数字

但是,即使您使用带有替代的版本,它也将匹配2位数字,并且在您的正则表达式中,后面将是[0-9]{8-10},它将是总共匹配的10 - 12位,而不是9- 12

您可以将前缀0放在charcter类之前,并将12378留在character类中。这将是2个字符,留下匹配的7 -10个后面的数字。

您不需要^$,因为正则表达式已经锚定了。

0[12378][0-9]{7,10}

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

https://stackoverflow.com/questions/51879206

复制
相关文章

相似问题

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