【发布时间】:2020-02-26 00:56:31
【问题描述】:
我对正则表达式很陌生,不确定我到底做错了什么。
我正在寻找符合以下数字格式的正则表达式:
匹配要求:
- 必须以 0 或 3 开头
- 必须介于 7 到 11 位数字之间
- 不得允许升序数字。例如0123456789, 01234567
- 不得允许重复数字。例如011111111, 3333333333, 0000000000
这是我想出的:
^(?=(^[0,3]{1}))(?!.*(\d)\1{3,})(?!^(?:0(?=1|$))?(?:1(?=2|$))?(?:2(?=3|$))?(?:3(?=4|$))?(?:4(?=5|$))?(?:5(?=6|$))?(?:6(?=7|$))?(?:7(?=8|$))?(?:8(?=9|$))?9?$).{7,11}$
上述正则表达式不符合第 (4) 号条件。不知道为什么。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
不要使用正则表达式来验证电话号码? stackoverflow.com/a/4338544/989920
-
不幸的是,它要求使用正则表达式。该应用程序将在特定位置使用。 @evolutionxbox
-
我会质疑这个要求。
-
你是这个意思吗?
^(?!.*(\d)\1)(?!(?:0(?=1|$))?(?:1(?=2|$))?(?:2(?=3|$))?(?:3(?=4|$))?(?:4(?=5|$))?(?:5(?=6|$))?(?:6(?=7|$))?(?:7(?=8|$))?(?:8(?=9|$))?9?$)[03]\d{6,10}$regex101.com/r/4EWkQJ/1 -
@Thefourthbird 不幸的是,它与以下情况不匹配:
022682673
标签: javascript regex