匹配 '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);
}