2017-01-12 5 views
-3

У меня есть спецификация для создания, которая не позволяет пользователям создавать пароли в порядке, таком как 'abc', 'xyz', 'hij' '678' или '789'.совпадение 'abc', 'xyz', 'hij', '678' или '789'

Я искал способ для этого.

Я нашел шаблоны соответствия регулярному выражению, которые будут соответствовать «aaa» или «777».

Как я могу сопоставлять последовательности lik 'abc', 'xyz', 'hij', '678' и '789'?

спасибо.

Любые предложения очень ценятся.

+0

у вас есть это много последовательностей: -''xyz ' 'Hij', '678' и' 789''? или более последовательности? –

+0

'/ [a-z \ d] {3}/i' –

+0

Можете ли вы вставить свой шаблон? –

ответ

0

Вы могли бы использовать что-то вроде этого: Уже Ответил

function inSequence($string, $num = 4) { 
    $i = 0; 
    $j = strlen($string); 
    $str = implode('', array_map(function($m) use (&$i, &$j) { 
     return chr((ord($m[0]) + $j--) % 256) . chr((ord($m[0]) + $i++) % 256); 
    }, str_split($string, 1))); 
    return preg_match('#(.)(.\1){' . ($num - 1) . '}#', $str); 
} 
+0

Красивая функция! Я изменил $ num = 4 на $ num = 3, и теперь он отлично работает для моих требований. – RocketShip

Смежные вопросы