1. 程式人生 > 實用技巧 >公共方法整合(二)

公共方法整合(二)

本文同樣儲存一些本人使用的公共方法

不過本篇主要儲存的是一些驗證方法

方法目錄:

  1. 正則驗證手機號碼格式是否正確
  2. 正則驗證身份證號碼
  3. 正則判定使用者名稱


1.正則驗證手機號碼格式是否正確

方法:

/**
 * 正則判定手機號碼格式是否正確
 * @param  [type]  $phone 手機號碼
 * @return boolean        判定結果
 */
function is_mobile($phone)
{
    // $preg = '/^(0|86|17951)?(13[0-9]|15[0-9]|17[0-9]|18[0-9]|14[57])[0-9]{8}$/';
    #正則方法 上面早期的部分號段不全
$preg = '/^[1][3,4,5,6,7,8,9][0-9]{9}$/'; return (bool) preg_match($preg, $phone); }

2020年08月27日


2.正則驗證身份證號碼

方法:

/**
 * 正則判定身份證號碼是否正確
 * @param  [type]  $idcard 身份證號碼
 * @return boolean         判定結果
 */
function isIdCard($idcard)
{
    
    $preg = '/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/';

    
return (bool) preg_match($preg, $idcard); } #方法二 /** * 驗證18位身份證(計算方式在百度百科有) * @param string $id 身份證號碼 * @return [type] 判定結果 */ function check_identity($id='') { $set = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); $ver = array('1','0','x','9','8','7','6','5','4','3','2'); $arr = str_split
($id); $sum = 0; for ($i = 0; $i < 17; $i++) { if (!is_numeric($arr[$i])) { $result['status'] = 0; $result['info'] = '請輸入18位身份證號'; return $result; } $sum += $arr[$i] * $set[$i]; } $mod = $sum % 11; if (strcasecmp($ver[$mod],$arr[17]) != 0) { $result['status'] = 0; $result['info'] = '您的身份證號不符合中國公民,請檢查'; return $result; } return TRUE; }

2020年08月07日


3.正則判定使用者名稱

方法:

#正則判定使用者名稱
#方法一
/**
 * 正則判定使用者名稱 大寫字母為首的6-20
 * @param  [type]  $users 使用者名稱
 * @return boolean        判定結果
 */
function isUsers($users)
{
    $preg = '/^[a-zA-Z]\w{6,20}$/';
    return (bool)preg_match($preg, $users);
}
#方法二
/**
 * 正則判定使用者名稱是否為中文
 * @param  [type]  $truename 使用者名稱
 * @return boolean           結果
 */
function isName($truename)
{
    // $preg = '/([\u4e00-\u9fa5]){2,4}/';
    // $preg = '/^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,8}$/';
    $preg = '/^[\x{4e00}-\x{9fa5}]{2,8}+$/u';

    return (bool) preg_match($preg, $truename);
}

2020年08月27日

方法持續更新中...