因為網路上大多的檢查函數都不完整
所以自己寫了這個函數方便以後快速套用
驗證日期 格式: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;
}
}
文章標籤
全站熱搜
