因此,我有一个正则表达式,用于标识输入的无效模式,我希望能够将其反转,以便与其匹配无效案例,不将其与有效案例匹配。这是无效的正则表达式:
^(?=\d{6}$)(?:(\d)\1{5,}|012345|123456|234567|345678|456789|567890|098765|987654|876543|765432|654321|54321)$
理想情况下,要匹配肯定的案例,应确保:
我曾尝试用负的前瞻性替换非捕获组,但是由于我不熟悉regex的更好语法,因此如果只是输入错误或需要在某个地方更改regex,我就不会肯定其他
编辑 虽然我知道这可以通过javascript处理,但我想使用regex来处理它,以利用Foundations的错误处理功能
答案 0 :(得分:2)
您可以使用此正则表达式:
/(?=^(\d){6}$)(?!^\1{6})(?!^(?:012345|123456|234567|345678|456789|567890|098765|987654|876543|765432|654321|54321)$)^\d+$/
正则表达式使用look ahead
并从检查6 digits
开始。它捕获last digit
,它与反向引用一起使用以进行检查。然后,它使用not 6 of the same digit
与无效序列列表进行比较。
最后它与negative look ahead
相匹配。