javascript 驗證方法

來源:互聯網
上載者:User

1、數字驗證內
  1.1 整數
      /^(-|\+)?\d+$/.test(str)
  1.2 大於0的整數 (用於傳來的ID的驗證)
      /^\d+$/.test(str)
  1.3 負整數的驗證
      /^-\d+$/.test(str)
2、時間類
  2.1 短時間,形如 (13:04:06)
      function isTime(str)
      {
        var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
        if (a == null) {alert('輸入的參數不是時間格式'); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("時間格式不對");
          return false
        }
        return true;
      }
  2.2 短日期,形如 (2003-12-05)
      function strDateTime(str)
      {
         var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1, r[4]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
      }
  2.3 長時間,形如 (2003-12-05 13:04:06)
      function strDateTime(str)
      {
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
      }
  2.4 只有年和月。形如(2003-05,或者2003-5)
  2.5 只有小時和分鐘,形如(12:03)
3、表單類
  3.1 所有的表單的值都不可為空
      <input onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')alert('不可為空!')">
  3.2 多行文字框的值不可為空。
  3.3 多行文字框的值不能超過sMaxStrleng
  3.4 多行文字框的值不能少於sMixStrleng
  3.5 判斷單選框是否選擇。
  3.6 判斷複選框是否選擇.
  3.7 複選框的全選,多選,全不選,反選
  3.8 檔案上傳過程中判斷檔案類型
4、字元類
  4.1 判斷字元全部由a-Z或者是A-Z的字字母組成
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有錯')">
  4.2 判斷字元由字母和數字組成。
      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有錯')">
  4.3 判斷字元由字母和數字,底線,點號組成.且開頭的只能是底線和字母
      /^([a-zA-z_]{1})([\w]*)$/g.test(str)
  4.4 字串替換函數.Replace();
5、瀏覽器類
  5.1 判斷瀏覽器的類型
      window.navigator.appName
  5.2 判斷ie的版本
      window.navigator.appVersion
  5.3 判斷用戶端的解析度
      window.screen.height;  window.screen.width;
 
6、結合類
  6.1 email的判斷。
      function ismail(mail)
      {
        return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
      }
  6.2 手機號碼的驗證
  6.3 身份證的驗證
      function isIdCardNo(num)
      {
        if (isNaN(num)) {alert("輸入的不是數字!"); return false;}
        var len = num.length, re;
        if (len == 15)
          re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
        else if (len == 18)
          re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
        else {alert("輸入的數字位元不對!"); return false;}
        var a = num.match(re);
        if (a != null)
        {
          if (len==15)
          {
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          else
          {
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          if (!B) {alert("輸入的社會安全號碼 "+ a[0] +" 裡出生日期不對!"); return false;}
        }
        return true;
      }

6.4(2008/7-31新增) 

    取得輸入字串的位元組數,用於輸入驗證很有用。如果資料庫裡字義的欄位為varchar(100),只能輸入100個英語字母或數字或50個漢字,一般的做法是限制輸入框的長度不大於50,即不管理輸入的中文或英文,最多隻能是50個。現在這種方法,即可判斷位元組長度,用於精確控制。

    function getBytesCount(str)
    {
      if (str == null)
      {
        return 0;
      }
      else
      {
        return (str.length + str.replace(/[\u0000-\u00ff]/g, "").length);
      }
    }

6.4.1

     function getBytesCount(str,maxLength)
    {
      if (str == null)
      {
        return 0;
      }
      else
      {

          var factLength=str.length + str.replace(/[\u0000-\u00ff]/g, "").length;
        if(factLengtn<maxLength)

          {

               return str;

          }

          else

          {

               return str.substring(0,maxLength);

           }
      }
    }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.