因為網路上大多的檢查函數都不完整
所以自己寫了這個函數方便以後快速套用

驗證日期 格式:yyyy-mm-dd

"^[12][0-9]{3}-([0][1-9])|([1][12])-([0][1-9])|([12][0-9])|([3][01])$"

 

驗證時間 格式(24hr):hh:mm

"^([0-1][0-9])|([2][0-3]):[0-5][0-9]$"

 

Function is_email($str) //驗證 E-mail 格式
{
    if( ereg("^[A-Za-z0-9\.\-]+@[A-Za-z0-9]+\.[A-Za-z0-9\.]+$", $str))
    {
        return 1;
    } else {
        return 0;
    }
}
Function is_tw_id($id) //驗證 身分證字號 格式
{
    //建立字母分數陣列
    $head = array('A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15,
                  'G'=>16,'H'=>17,'I'=>34,'J'=>18,'K'=>19,'L'=>20,
                  'M'=>21,'N'=>22,'O'=>35,'P'=>23,'Q'=>24,'R'=>25,
                  'S'=>26,'T'=>27,'U'=>28,'V'=>29,'W'=>32,'X'=>30,
                  'Y'=>31,'Z'=>33);
    //檢查身份字格式是否正確
     if (ereg("^[A-Za-z][1-2][0-9]{8}$",$id)){
         //切開字串
         for($i=0; $i<10; $i++){
             $idArray[$i] = substr($id,$i,1);  
         }
         $idArray[0] = strtoupper($idArray[0]); //小寫轉大寫
         //取得字母分數&建立加權分數
         $a[0] = substr($head[$idArray[0]],0,1);
         $a[1] = substr($head[$idArray[0]],1,1);
         $total = $a[0]*1+$a[1]*9;
         //取得數字分數&建立加權分數
         for($j=1; $j<=8; $j++){
            $total += $idArray[$j]*(9-$j);
         }         
         //檢查比對碼
         if($total%10 == 0) {
         $checksum = 0;
         } else {
         $checksum = 10-$total%10;
         }
         if ($idArray[9] == $checksum) {
             return true;  
         } else {  
             return false;
         }
    return false;
    }  
}

AwEi 發表在 痞客邦 PIXNET 留言(0) 人氣()