1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /******* 居留證號檢驗 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)
沒有留言:
張貼留言