我想检查一个字符串,例如 56401,它有 2 个连续的数字 (5,6) 并检查反向 (6,5),并且需要返回 false 否则为 true。我尝试使用preg_match但我认为它无法正常工作:
/'d{4}/
关于如何改善这一点的任何想法?
与其使用正则表达式,我建议这样:
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'
将计为连续一对)。如果您只希望此函数处理数字,我建议您在将字符串传递到此函数之前对其进行验证(正则表达式是一个很好的解决方案)。