【发布时间】:2019-04-10 05:12:11
【问题描述】:
所以我有一个正则表达式来识别我的输入的无效模式,我希望能够反转它,而不是匹配无效案例,而是匹配有效案例。这是无效的正则表达式:
^(?=\d{6}$)(?:(\d)\1{5,}|012345|123456|234567|345678|456789|567890|098765|987654|876543|765432|654321|54321)$
理想情况下,它应确保匹配阳性病例:
- 6 位数
- 同一个数字不重复 6 次
- 它不是按顺序递增或递减 1
我尝试用负前瞻替换非捕获组,但是由于我不熟悉正则表达式的更精细语法,如果这只是一个输入错误或者我需要在某处更改正则表达式,我不肯定否则
编辑 虽然我知道这可以由 javascript 处理,但我想用正则表达式处理它以利用 Foundations 错误处理
【问题讨论】:
-
我不清楚你为什么不能使用
if... -
如果您要查找与此不匹配的所有内容,您可以在所有内容之前用
!括起来以否定/反转表达式 -
你不能检查它是否在javascript中匹配并在它的else部分写你的代码吗?
-
该模式似乎没有找到正匹配。也许,你想要的只是
/^(?!(?:(\d)\1{5}|012345|123456|234567|345678|456789|567890|098765|987654|876543|765432|654321|54321)$)/ -
@Betlista, Taha Paksu 我添加了一条注释,表示我喜欢只使用正则表达式而不是 javascript 来处理这个问题
标签: javascript regex regex-negation