2013-04-19 37 views
0

我正在完成本網站並正在處理最後幾次驗證。 如何使名稱字段的驗證只接受字母而不接受數字。我如何驗證郵政編碼字段包含5位數字。 以下是我到目前爲止。驗證數字字段的功能

//First Name 
function check_fname($fname){ 
if($fname==''){ 
    return 'Please Enter your First Name.'; 
}} 

//Zip Code 
function check_zip($zip){ 
if(! is_numeric($zip)){ 
    return 'Please Enter your Zip.'; 
}} 
+0

驗證函數應該只返回B​​OOLEAN值。你走錯了路。這應該類似於這個'if(!is_zip_valid($ zip)){/ *將錯誤信息添加到容器* /}' – Yang

回答

1

正則表達式:

if (preg_match('/^[a-z]+$/i', $fname)) ... // At least one letter 

if (preg_match('/^\d{5}$/', $zip)) ... // 5 digits 

對於名稱,這取決於你的人口,你可能要允許外國字符,我建議這個解決方案,它是更寬容:

if (strlen($fname) > 0 && ! preg_match('/\d/', $fname)) ... 
+0

如果你談論外部字符,那麼'mb_strlen($ string,'UTF-8')'會更有意義。 – Yang

0

對於任何Unicode(國際)字母

if (preg_match('/^\pL+$/u', $fname)) ...