匹配 'abc'、'xyz'、'hij'、'678' 或 '789'
match 'abc', 'xyz', 'hij', '678' or '789'
我有一个规范来创建不允许用户按 'abc'、'xyz'、'hij'、'678' 或 '789' 的顺序创建密码。
我已经在寻找一种方法来做到这一点。
我找到了匹配 'aaa' 或 '777' 的正则表达式匹配模式。
如何匹配 'abc'、'xyz'、'hij'、'678' 和 '789' 等序列?
谢谢。
非常感谢任何建议。
你可以使用这样的东西:已经回答
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('#(.)(.){' . ($num - 1) . '}#', $str);
}
我有一个规范来创建不允许用户按 'abc'、'xyz'、'hij'、'678' 或 '789' 的顺序创建密码。
我已经在寻找一种方法来做到这一点。
我找到了匹配 'aaa' 或 '777' 的正则表达式匹配模式。
如何匹配 'abc'、'xyz'、'hij'、'678' 和 '789' 等序列?
谢谢。
非常感谢任何建议。
你可以使用这样的东西:已经回答
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('#(.)(.){' . ($num - 1) . '}#', $str);
}