我必须编写函数来检查浏览器输入数字的验证:
- >是数字
- >有6个字母
- >形式:奇数+偶数+奇数+偶数,......第一个字符可以是奇数或偶数。
例如:123456 =>真正; 234567 =>真
我写道:
function check_code($code){
if (!is_numeric($code)) return false;
if (strlen($code)<>6) return false;
$c = str_split($code);
if (($c[0]+$c[1])%2==1 && ($c[1]+$c[2])%2==1 && ($c[2]+$c[3])%2==1 && ($c[3]+$c[4])%2==1 && ($c[4]+$c[5])%2==1) return true;
return false;
}
还有其他解决方案比上面的代码“更短更智能”吗?谢谢
答案 0 :(得分:1)
您可以考虑使用模运算符将逻辑重写为for循环:
function check_code($code)
{
if (!is_numeric($code)) return false;
if (strlen($code)<>6) return false;
$c = str_split($code);
for ($i = 0; $i < count($c); $i++) {
if (isset($c[$i + 1])) {
if (($c[$i] + $c[$i + 1]) % 2 !== 1) {
return false;
}
}
}
return true;
}