/*******
居留證號檢驗 PHP version by Duckfly 2014.04.07
param1 = 居留證號
param2 = 是否區分大小寫 (預設false)
********/
function isRCNum($RCNum='', $caseSensitive=false){
$RCNum = trim($RCNum);
//first step
$pattern = ($caseSensitive)?'/^[A-Z]{1}[A-D]{1}[0-9]{8}$/':'/^[A-Z]{1}[A-D]{1}[0-9]{8}$/i';
if(preg_match($pattern, $RCNum) == 0) return false;
//second step
$RCArray = str_split(strtoupper($RCNum));
$area_str="ABCDEFGHJKLMNPQRSTUVXYWZIO";
//num1 ~ num2
$ary12 = str_split(strval(strpos($area_str, $RCArray[0])+10));
//num3
$ary3 = array(strpos($area_str, $RCArray[1]) % 10);
//chechArray (+num4 ~ num11)
$chechArray = array_merge($ary12, $ary3, array_slice($RCArray, 2));
//parseInt
$chechArray = array_map('intval', $chechArray);
//sum
if(count($chechArray) !== 11) return false;
$sum = $chechArray[0]+$chechArray[10];
for($i=1;$i<=9;$i++){
$sum += $chechArray[$i]*(10-$i);
}
if(($sum % 10) !== 0) return false;
return true;
}
2015-02-02
居留證號檢驗 PHP version
網路有JAVA、Javascript version的,沒有PHP version,只好自已刻一個...跟檢驗身份證號的方法意思是差不多的。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言