只能输入2位或5位整数的正则是这样的
\d\d(\d\d\d)?([0-9]{2})|([0-9]{5})\d{2}|\d{5}
谁回答比较巧妙呢?
测试下
php测试:
只输入数字:
if($_GET['q']) {
$str = $_GET['q'];
echo "输入的是:$str
\n";
$search = '/^\d\d(\d\d\d)?$/';
$rr = preg_match($search,$str);
if ($rr){echo '\d\d(\d\d\d)? 检查通过'."
\n";}else{echo '\d\d(\d\d\d)? 检查不通过'."
\n";}
$search = '/^([0-9]{2})|([0-9]{5})$/';
$rr = preg_match($search,$str);
if ($rr){echo '([0-9]{2})|([0-9]{5}) 检查通过'."
\n";}else{echo '[0-9]{2})|([0-9]{5}) 检查不通过'."
\n";}
$search = '/^\d{2}|\d{5}$/';
$rr = preg_match($search,$str);
if ($rr){echo '\d{2}|\d{5} 检查通过'."
\n";}else{echo '\d{2}|\d{5} 检查不通过'."
\n";}
}
?>
end