Php 模式匹配,不以零开始
我有一个用户输入年龄的字段,我想做一些错误检查。如果用户输入数字“0”并单击“提交”,它将显示一个错误,说明他们不能以零开头。但是我还想允许一个包含数字0的年龄,比如20岁。我不知道如何不允许某人输入起始数字0 我的PHP代码是:Php 模式匹配,不以零开始,php,javascript,design-patterns,matching,Php,Javascript,Design Patterns,Matching,我有一个用户输入年龄的字段,我想做一些错误检查。如果用户输入数字“0”并单击“提交”,它将显示一个错误,说明他们不能以零开头。但是我还想允许一个包含数字0的年龄,比如20岁。我不知道如何不允许某人输入起始数字0 我的PHP代码是: <?php $age_numeric = preg_match("/^(^[1-9]){1,}$/", $age); ?> //some more code <?php if (!$age_numeric) echo "age can only be
<?php
$age_numeric = preg_match("/^(^[1-9]){1,}$/", $age);
?>
//some more code
<?php if (!$age_numeric) echo "age can only be numeric."; ?>
//还有代码吗
那么为什么不
$age_numeric = preg_match("/^[1-9][0-9]*$/", $age);
?使用
是数字
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
或
$begin_with_zero=preg_match(“/^0/”,$age);
此regexp匹配不带前导零的有效数字:
^(0|[1-9]\d*)$
没有正则表达式:
if (is_numeric($age) && strspn($age, '0') == 0) {
// $age is numeric and doesn't start with "0"
}
另见:
if (is_numeric($age) && strspn($age, '0') == 0) {
// $age is numeric and doesn't start with "0"
}