1. 程式人生 > >一些有用的js正則驗證(是否為空,是否為正整數,email,手機,電話,身份證)

一些有用的js正則驗證(是否為空,是否為正整數,email,手機,電話,身份證)

dojo.provide("common.util.validate");

common.util.validate = {

   isBlank : function(value) {
      if (typeof (value) == "undefinded" || value == null) {
         return true;
      }
      if (typeof (value) != "string") {
         value = value.toString();
      }
      var v = dojo.string.trim(value);
      if (v.length == 0) {
         return true;
      }
      return false;
   },

   isPositiveInteger : function(number) {
      var reg = /^[0-9]*[1-9][0-9]*$/;
      if (!reg.test(number)) {
         return false;
      }
      return true;
   },

   isValidEmail : function(mail) {
      var EMAIL = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
      if (!EMAIL.test(mail)) {
         return false;
      }
      return true;
   },

   isValidPhoneNum : function(number) {
      var PHONE = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
      if (!PHONE.test(number)) {
         return false;
      }
      return true;
   },

   isElevenNumString : function(number) {
      var ELEVEN_NUM_STRING = /^\d{11}$/;
      if (!ELEVEN_NUM_STRING.test(number)) {
         return false;
      }
      return true;
   },

   isAreaCodeString : function(number) {
      var AREA_CODE_STRING = /^0\d{2,3}$/;
      if (!AREA_CODE_STRING.test(number)) {
         return false;
      }
      return true;
   },

   isValidFixPhoneNum : function(number) {
      var FIX_PHONE = /^((0\d{2,3})-)(\d{7,8})((-(\d{1,4})(\/(\d{1,4}))*)?)$/;
      if (!FIX_PHONE.test(number)) {
         return false;
      }
      return true;
   },

   isIdNo : function(num) {
      num = num.toUpperCase();
      // 身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X。
      if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
         return false;
      }
      //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
      // 下面分別分析出生日期和校驗位
      var len, re;
      len = num.length;
      if (len == 15) {
         re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
         var arrSplit = num.match(re);

         // 檢查生日日期是否正確
         var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/'
               + arrSplit[4]);
         var bGoodDay;
         bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2]))
               && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))
               && (dtmBirth.getDate() == Number(arrSplit[4]));
         if (!bGoodDay) {
            return false;
         } else {
            //將15位身份證轉成18位
            // 校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,
                  8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4',
                  '3', '2');
            var nTemp = 0, i;
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
            for (i = 0; i < 17; i++) {
               nTemp += num.substr(i, 1) * arrInt[i];
            }
            num += arrCh[nTemp % 11];
            return num;
         }
      }
      if (len == 18) {
         re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
         var arrSplit = num.match(re);

         // 檢查生日日期是否正確
         var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/"
               + arrSplit[4]);
         var bGoodDay;
         bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2]))
               && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))
               && (dtmBirth.getDate() == Number(arrSplit[4]));
         if (!bGoodDay) {
            return false;
         } else {
            //檢驗18位身份證的校驗碼是否正確。
            // 校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
            var valnum;
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,
                  8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4',
                  '3', '2');
            var nTemp = 0, i;
            for (i = 0; i < 17; i++) {
               nTemp += num.substr(i, 1) * arrInt[i];
            }
            valnum = arrCh[nTemp % 11];
            if (valnum != num.substr(17, 1)) {
               return false;
            }
            return num;
         }
      }
      return false;
   }
}

相關推薦

一些有用js驗證是否是否整數email,手機,電話身份證

dojo.provide("common.util.validate"); common.util.validate = {    isBlank : function(value) {       if (typeof (value) == "undefinded" ||

js驗證數字字母和下劃線至少包含其中兩種數字不能開頭

最近做了一個註冊驗證使用者名稱,要求數字,字母和下劃線(至少包含其中兩種,數字不能開頭),在網上找了好多例子,要麼只能實現字母和下劃線(數字不能開頭),要麼就只能實現數字,字母和特殊字元(至少包含其中兩種,數字不能開頭),無法排除其他的特殊字元,在嘗試了很多次以後,我試著將這兩種情況的判

身份驗證-表示式JS

function isIdCardNo(num) {num = num.toUpperCase();//身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X。 if (!(/(^\d{15}$)|(^\d{17}([0-

js驗證數字的方法

字符 ack xxxxxxxx clas cti validate 浮點 則表達式 pre 正則驗證數字的方法: <script type="text/javascript"> function validate(){ var reg

了解jQuery Validate.JS後不用再驗證頭疼

url 理解 程序 valid 客戶 pre 提高 -s log jQuery Validate 是功能豐富的正則驗證插件,為客戶端提供了強大的驗證功能,同時提供了大量的正則選項,滿足應用程序各種需求。該插件捆綁了一整套有用的驗證方法,同時包括URL驗證和電子郵件驗證,為

js驗證郵箱身份證

hang www. 嚴格模式 開始 驗證 mage 大小寫 模式 匹配 代碼片段 多項驗證 常用手機,郵箱,身份證驗證規則 /^1[3,4,5,7,8][0-9]{9}$/ /(\d{6})[1,2]([0-9]{10})(\d|x|X)$/ //[1

js 驗證非法字符

js 正則if(/[<>\‘\"\ \ ]/.test(fm.username.value)) { alert("昵稱包含非法字符"); fm.username.focus(); return false; }js 正則驗證非法字符

JS驗證兩位小數驗證數字最簡單表達式大全

正則 d+ test this size code tex 保留 TE <h3>輸入完按回車後即可驗證!</h3> 正整數: <input type="text" size="20" onkeydown="if(event.keyCode

js表示式2

找到以某個字串開頭的字串 var myReg=/^(abc)/gim; 如果不加m,那麼只找一行,而加了m可以找到每行中以該字串開頭的匹配文字。 如: abcsfsdfasd7890hklfahskfkaluiop7890-7890782ksdlafkasdnfklsdnf;lsabc

常用表示式大全手機 電話 郵箱 身份證 最嚴格的驗證 IP地址 網址 日期等一般前臺js驗證來這裡就夠了

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

jsp頁面驗證手機號的表示式最新

jsp頁面校驗手機號(js): function checkMobile(){           var checkRole =/^0?(13[0-9]|15[012356789]|18[012346789]|1

常用的js驗證

常用js正則表示式大全 一、校驗數字的js正則表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$&nbs

常用的一些驗證

1、驗證身份證號 /** * 驗證身份證號 * @param card * @returns {Boolean} */ function isCardNo(card) { // 身份證號碼

泛化能力、訓練集、測試集、K折交叉驗證、假設空間、欠擬合與過擬合、L1化、L2、超引數

泛化能力(generalization): 機器學習模型。在先前未觀測到的輸入資料上表現良好的能力叫做泛化能力(generalization)。 訓練集(training set)與訓練錯誤(training error): 訓練機器學習模型使用的資料集稱為訓練集(tr

JS表示式火星文

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>正則表示式(火星文)</title> </head>

驗證姓名中文(包含生僻字)

target href nbsp org http 表達式 ont 參考 code 1.常見的中文 \u4e00-\u9fbb 和 \u4e00-\u9fa5 (不包含生僻字) 2.比較廣泛的中文漢字。(包含了咱們需要的生僻字 和 不需要的很多字符 比如 中文句號分號逗

驗證match與test函式的區別?

test是RegExp的方法,引數是字串,返回值是boolean型別。 match是String的方法,引數是正則表示式,返回值是陣列。 案例: 1 //判斷日期型別是否為YYYY-MM-DD格式的型別 2 function IsDate(){ 3 va

表單驗證時常用表示式以“註冊資訊”

個人在使用時看到網上總結的有很多了,但大多文章表述的都比較抽象,使用時需要自己組合,通常因為懶所以實際在用時習慣直接拿來用,總結的是本人寫程式的過程中用的頻率比較高的幾個例項: 另:這裡有一個博主總結的很不錯,連結貼上 /*驗證是否同意協議*/ function

關於最新手機號碼驗證表示式oc及swift

由於三大運營商已經增加了新的手機號碼欄位,為了能夠正確驗證手機號碼的正確性,我們必須將正則表示式更新後放入專案中。 OC: - (BOOL)isMobileNumber:(NSString *)mobileNum { if (mobileNum.length != 11)

js驗證

1、手機號是否合法 var reg3 = /^1(3|4|5|7|8)\d{9}$/; reg3.test(phoneNum) 2、控制只能是兩位小數 (obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2