js表單驗證和各種資料驗證正規表示式外掛

antzone發表於2017-03-02

本章節分享一段封裝的正規表示式外掛,它實現了豐富驗證功能。

比如資料型別驗證,各種表單驗證(郵箱驗證、身份證驗證或者手機號碼驗證等等)

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
Angela.regExp = { //# 字串匹配
  //是否為 數字!整數,浮點數
  isNum: function (num) { //# 是否為陣列
    return !isNaN(num);
  }
  , isEmail: function (mail) {//# 是否為 郵箱
    return /^([a-z0-9]+[_\-\.]?)*[a-z0-9]+@([a-z0-9]+[_\-\.]?)*[a-z0-9]+\.[a-z]{2,5}$/i.test(mail);
  }
  , isIdCard: function (card) { //# 是否為 身份證
    return /^(\d{14}|\d{17})(\d|[xX])$/.test(card);
  }
  , isMobile: function (mobile) { //# 是否為 手機
    return /^0*1\d{10}$/.test(mobile);
  }
  , isQQ: function (qq) { //# 是否為 QQ
    return /^[1-9]\d{4,10}$/.test(qq);
  }
  , isTel: function (tel) { //# 是否為 電話
    return /^\d{3,4}-\d{7,8}(-\d{1,6})?$/.text(tel);
  }
  , isUrl: function (url) { //# 是否為 URL
    return /https?:\/\/[a-z0-9\.\-]{1,255}\.[0-9a-z\-]{1,255}/i.test(url);
  }
  , isColor: function (color) { //# 是否為 16進位制顏色
    return /#([\da-f]{3}){1,2}$/i.test(color);
  }
  //@id : 身份證 ,
  // @now : 當前時間 如:new Date('2013/12/12') , '2013/12/12'
  // @age : 允許的年齡
  , isAdult: function (id, allowAge, now) { //# 是否年齡是否成年
    var age = 0 // 使用者 年月日
      , nowDate = 0 //當前年月日
    ;
    allowAge = parseFloat(allowAge) || 18;
    now = typeof now == 'string' ? new Date(now) : (now || new Date());
  
  
    if (!this.isIdCard(id)) {
      return false;
    }
    //15位身份證
    if (15 == id.length) {
      age = '19' + id.slice(6, 6);
    } else {
      age = id.slice(6, 14);
    }
    // 型別轉換 整型
    age = ~~age;
    nowDate = ~~(Tydic.date.format('YYYYMMDD', now));
    //比較年齡
    if (nowDate - age < allowAge * 1e4) {
      return false;
    }
    return true;
  }
  //浮點數
  , isFloat: function (num) { //# 是否為 浮點數
    return /^(([1-9]\d*)|(\d+\.\d+)|0)$/.test(num);
  }
  //正整數
  , isInt: function (num) { //# 是否為 正整數
    return /^[1-9]\d*$/.test(num);
  }
  //是否全為漢字
  , isChinese: function (str) { //# 是否全為 漢字
    return /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])+$/gi.test(str);
  }
  
};

相關文章