正则表达式,以防止超过3个字符或数字的升序或降序

时间:2016-04-18 10:15:02

标签: regex logic

我有正则表达式

/^(?!.*([0-9])\1{2})(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])[0-9a-zA-Z]*$/

我想修改它以防止超过3个字符或数字的升序或降序。我知道这不是最明智的解决方案,但这是要求所以我不介意对所有可能的序列进行硬编码。

1 个答案:

答案 0 :(得分:0)

我的解决方案

/^(?!.*([0-9])\1{2})(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?!.*0123|.*1234|.*2345|.*3456|.*4567|.*5678|.*6789|.*3210|.*4321|.*5432|.*6543|.*7654|.*8765|.*9876|.*1122|.*2233|.*3344|.*4455|.*5566|.*6677|.*7788|.*8899|.*9900|.*0011|.*1100|.*(?i)qwerty|.*(?i)abcd|.*(?i)bcde|.*(?i)cdef|.*(?i)defg|.*(?i)efgh|.*(?i)fghi|.*(?i)ghij|.*(?i)hijk|.*(?i)ijkl|.*(?i)jklm|.*(?i)klmn|.*(?i)lmno|.*(?i)mnop|.*(?i)nopq|.*(?i)opqr|.*(?i)pqrs|.*(?i)qrst|.*(?i)rstu|.*(?i)stuv|.*(?i)tuvw|.*(?i)uvwx|.*(?i)vwxy|.*(?i)wxyz|.*(?i)zyxw|.*(?i)yxwv|.*(?i)xwvu|.*(?i)wvut|.*(?i)vuts|.*(?i)utsr|.*(?i)tsrq|.*(?i)srqp|.*(?i)rqpo|.*(?i)qpon|.*(?i)ponm|.*(?i)onml|.*(?i)nmlk|.*(?i)mlkj|.*(?i)lkji|.*(?i)kjih|.*(?i)jihg|.*(?i)ihgf|.*(?i)hgfe|.*(?i)gfed|.*(?i)fedc|.*(?i)edcb|.*(?i)dcba)[0-9a-zA-Z]*$/