0

我想检查一个字符串,例如。56401 有 2 个连续数字 (5,6) 并检查反向 (6,5) 并且需要返回 false 否则为 true。我尝试使用 preg_match 但我认为它不能正常工作:

/\d{4}/

关于如何改善这一点的任何想法?

4

1 回答 1

0

而不是使用正则表达式,我会推荐这样的东西:

function has_consecutive_chars($input) {
    $chars = str_split($input);
    for ($i = 1; $i < count($chars); $i++)
    {
        if (abs($chars[$i] - $chars[$i-1]) == 1)
        {
           return true;
        }
    }
    return false;
}

has_consecutive_chars('56401'); // true
has_consecutive_chars('72674'); // true
has_consecutive_chars('53794'); // false

请注意,这也适用于非数字(例如'ab'将被视为连续对)。如果您只希望此函数处理数字,我建议您在将字符串传递给此函数之前验证您的字符串(正则表达式是一个很好的解决方案)。

于 2013-09-19T15:24:40.957 回答