pattern="^[01|02|03|07|08]{1}[0-9]{8-10}$"我需要9-12个字符开始与01,02,03,07或08。为什么我的模式不起作用?
发布于 2018-08-16 22:24:05
你不需要^和$。我试着简化你的模式:
[01|02…08]更改为0(1|2…8),因为您需要使用括号。{8-10}更改为{7,10},因为您说您“需要9-12个字符”,并且-在chevybow中不起作用下面的代码片段适用于我:
<form>
<input pattern="0(1|2|3|7|8)[0-9]{7,10}" />
<input type="submit" />
</form>
发布于 2018-08-16 22:21:52
这对你来说应该是可行的
^(01|02|03|07|08){1}[0-9]{8,10}$您的问题是使用[]而不是()检查第一个数字。你需要用逻辑“或”括起来。按照你的方式,你只需要匹配任意数字或|中的一个字符。
例如:
与|12345678一样,012345678应该与您正在使用的模式相匹配
发布于 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个后面的数字。
您不需要^和$,因为正则表达式已经锚定了。
https://stackoverflow.com/questions/51879206
复制相似问题