聯(lián)系官方銷(xiāo)售客服
1835022288
028-61286886
// 電話號(hào)碼驗(yàn)證函數(shù) function dr_shouji_xiaoyan($value, $data = [], $old = []) { if (!$value) { return dr_return_data(0, '請(qǐng)?zhí)顚?xiě)電話'); } elseif (strlen($value) < 11) { return dr_return_data(0, '請(qǐng)輸入正確的11位手機(jī)號(hào)碼'); } elseif (!is_numeric($value)) { return dr_return_data(0, '只能輸入數(shù)字'); } return dr_return_data(1, 'ok'); }
怎么樣類(lèi)似這樣寫(xiě)一個(gè)身份證號(hào)位數(shù)效驗(yàn),身份證號(hào)一般是18位,然后最后一位數(shù)可能是X。怎么這樣效驗(yàn)啊。
還有就是怎么在寫(xiě)一個(gè),郵箱的效驗(yàn)。就是需要在填寫(xiě)郵箱的地方判斷格式。
求大神幫我寫(xiě)一個(gè)
你這個(gè)我怎么用呢,前面電話我是這樣用的。然后把代碼放到一個(gè)文件里面 這里調(diào)用用的,你這個(gè)我應(yīng)該怎么樣用
回復(fù)@SMALL
不是,身份證最后一位有可能是數(shù)字,有可能是X,不是只能是X啊
回復(fù)@如來(lái)
身份證最后一位有可能是數(shù)字,有可能是X,不是只能是X,就是這么寫(xiě)的啊
回復(fù)@五金沖壓件
哦,我試試
回復(fù)@如來(lái)
回復(fù)@如來(lái)
這里的11 要修改成18嗎
完美答案,請(qǐng)給分
大哥,這個(gè)我剛才實(shí)驗(yàn)了,
最后一個(gè)是S也保存成功了
回復(fù)@二開(kāi)/定制/使用解答專家
有點(diǎn)難搞,一人回復(fù)一個(gè),我這懸賞(設(shè)置懸賞)應(yīng)該怎么采納呢
234樓都可行,兩個(gè)問(wèn)題就發(fā)兩個(gè)帖子唄
/**
* 身份證號(hào)驗(yàn)證
* @param $value
* @return bool
*/
function dr_is_idcard( $value, $data = [], $old = [] )
{
$value = strtoupper($value);
$regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
$arr_split = array();
if(!preg_match($regx, $value))
{
return dr_return_data(0, '請(qǐng)?zhí)顚?xiě)身份證');
}
if(15==strlen($value)) //檢查15位
{
$regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";
@preg_match($regx, $value, $arr_split);
//檢查生日日期是否正確
$dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
if(!strtotime($dtm_birth))
{
return dr_return_data(0, '請(qǐng)?zhí)顚?xiě)正確的身份證');
} else {
return dr_return_data(1, 'ok');
}
}
else //檢查18位
{
$regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
@preg_match($regx, $value, $arr_split);
$dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
if(!strtotime($dtm_birth)) //檢查生日日期是否正確
{
return dr_return_data(0, '請(qǐng)?zhí)顚?xiě)正確的身份證');
}
else
{
//檢驗(yàn)18位身份證的校驗(yàn)碼是否正確。
//校驗(yàn)位按照ISO 7064:1983.MOD 11-2的規(guī)定生成,X可以認(rèn)為是數(shù)字10。
$arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
$arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$sign = 0;
for ( $i = 0; $i < 17; $i++ )
{
$b = (int) $value{$i};
$w = $arr_int[$i];
$sign += $b * $w;
}
$n = $sign % 11;
$val_num = $arr_ch[$n];
if ($val_num != substr($value,17, 1))
{
return dr_return_data(0, '請(qǐng)?zhí)顚?xiě)正確的身份證');
} //phpfensi.com
else
{
return dr_return_data(1, 'ok');
}
}
}
}