$code = 'code';
$patt = "/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(10|11|12))([012](\d|(30|31)))\d{3}[xX\d]$/";
preg_match_all($patt, $code, $match);
if(!empty($match[0])){
echo '成功';
} else {
echo'失败';
}