2013-04-01 31 views
0

我有一個字段,用戶輸入他們的年齡,我想做一些錯誤檢查。如果用戶輸入數字「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."; ?> 

回答

1

那麼爲什麼不直接

$age_numeric = preg_match("/^[1-9][0-9]*$/", $age); 

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 
0

$begin_with_zero = preg_match("/^0/", $age); 
<?php if ($begin_with_zero) echo "Can't begin with zero."; ?> 
1

這個規則表達式有效號碼匹配,沒有前導零:

^(0|[1-9]\d*)$ 
0

沒有正則表達式:

if (is_numeric($age) && strspn($age, '0') == 0) { 
    // $age is numeric and doesn't start with "0" 
} 

參見:strspn()