我有一个用户输入其年龄的字段,我想做一些错误检查。如果用户输入数字“0”并单击submit
,则会显示一条错误消息,指出它们不能以零开头。但我也想允许一个包含数字零的年龄,例如20岁。我不知道如何不允许某人输入0的起始数字。
我的PHP代码是:
<?php
$age_numeric = preg_match("/^(^[1-9]){1,}$/", $age);
?>
//some more code
<?php if (!$age_numeric) echo "age can only be numeric."; ?>
答案 0 :(得分:1)
为什么不呢
$age_numeric = preg_match("/^[1-9][0-9]*$/", $age);
答案 1 :(得分:1)
此正则表达式匹配有效数字而不带前导零:
^(0|[1-9]\d*)$
答案 2 :(得分:0)
使用is_numeric
if(!empty($age) && is_numeric($age)) {
echo 'valid age';
} else {
echo 'invalid age';
}
//示例输出
$age = 0; // invalid age
$age = ''; // invalid age
$age = 'lkjsd'; // invalid age
$age = 12a; // invalid age
$age = 1; // valid age
答案 3 :(得分:0)
或
$begin_with_zero = preg_match("/^0/", $age);
<?php if ($begin_with_zero) echo "Can't begin with zero."; ?>
答案 4 :(得分:0)
没有正则表达式:
if (is_numeric($age) && strspn($age, '0') == 0) {
// $age is numeric and doesn't start with "0"
}
另请参阅:strspn()