我思故我強(qiáng)

          js客戶端驗(yàn)證

          驗(yàn)證類
          1、數(shù)字驗(yàn)證內(nèi)
          ??1.1 整數(shù)
          ??????/^(-|\+)?\d+$/.test(str)
          ??1.2 大于0的整數(shù) (用于傳來的ID的驗(yàn)證)
          ??????/^\d+$/.test(str)
          ??1.3 負(fù)整數(shù)的驗(yàn)證
          ??????/^-\d+$/.test(str)
          2、時(shí)間類
          ??2.1 短時(shí)間,形如 (13:04:06)
          ??????function isTime(str)
          ??????{
          ????????var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
          ????????if (a == null) {alert('輸入的參數(shù)不是時(shí)間格式'); return false;}
          ????????if (a[1]>24 || a[3]>60 || a[4]>60)
          ????????{
          ??????????alert("時(shí)間格式不對(duì)");
          ??????????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 長時(shí)間,形如 (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 只有小時(shí)和分鐘,形如(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 判斷復(fù)選框是否選擇.
          ??3.7 復(fù)選框的全選,多選,全不選,反選
          ??3.8 文件上傳過程中判斷文件類型
          4、字符類
          ??4.1 判斷字符全部由a-Z或者是A-Z的字字母組成
          ??????<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有錯(cuò)')">
          ??4.2 判斷字符由字母和數(shù)字組成。
          ??????<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有錯(cuò)')">
          ??4.3 判斷字符由字母和數(shù)字,下劃線,點(diǎn)號(hào)組成.且開頭的只能是下劃線和字母
          ??????/^([a-zA-z_]{1})([\w]*)$/g.test(str)
          ??4.4 字符串替換函數(shù).Replace();
          5、瀏覽器類
          ??5.1 判斷瀏覽器的類型
          ??????window.navigator.appName
          ??5.2 判斷ie的版本
          ??????window.navigator.appVersion
          ??5.3 判斷客戶端的分辨率
          ??????window.screen.height;??window.screen.width;
          ??
          6、結(jié)合類
          ??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 手機(jī)號(hào)碼的驗(yàn)證
          ??6.3 身份證的驗(yàn)證
          ??????function isIdCardNo(num)
          ??????{
          ????????if (isNaN(num)) {alert("輸入的不是數(shù)字!"); 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("輸入的數(shù)字位數(shù)不對(duì)!"); 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("輸入的身份證號(hào) "+ a[0] +" 里出生日期不對(duì)!"); return false;}
          ????????}
          ????????return true;
          ??????}

          3.7 復(fù)選框的全選,多選,全不選,反選
          <form name=hrong>
          <input type=checkbox name=All onclick="checkAll('mm')">全選<br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>


          <input type=checkbox name=All2 onclick="checkAll('mm2')">全選<br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

          </form>

          <SCRIPT LANGUAGE="java script">
          function checkAll(str)
          {
          ??var a = document.getElementsByName(str);
          ??var n = a.length;
          ??for (var i=0; i<n; i++)
          ??a[i].checked = window.event.srcElement.checked;
          }
          function checkItem(str)
          {
          ??var e = window.event.srcElement;
          ??var all = eval("document.hrong."+ str);
          ??if (e.checked)
          ??{
          ????var a = document.getElementsByName(e.name);
          ????all.checked = true;
          ????for (var i=0; i<a.length; i++)
          ????{
          ??????if (!a[i].checked){ all.checked = false; break;}
          ????}
          ??}
          ??else all.checked = false;
          }
          </SCRIPT>

          3.8 文件上傳過程中判斷文件類型
          <input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">

          畫圖:
          <OBJECT
          id=S
          style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px"
          height=240
          width=392
          classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
          </OBJECT>
          <SCRIPT>
          S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
          S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
          S.DrawingSurface.Line(10,10,100,100);
          </SCRIPT>

          寫注冊(cè)表:
          <SCRIPT>
          var WshShell = WScript.CreateObject("WScript.Shell");
          WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
          WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");
          var bKey =????WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
          WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));
          WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
          WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
          WshShell.RegDelete ("HKCU\\Software\\ACME\\");
          </SCRIPT>

          TABLAE相關(guān)(客戶端動(dòng)態(tài)增加行列)
          <HTML>
          <SCRIPT LANGUAGE="JScript">
          function numberCells() {
          ????var count=0;
          ????for (i=0; i < document.all.mytable.rows.length; i++) {
          ????????for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
          ????????????document.all.mytable.rows(i).cells(j).innerText = count;
          ????????????count++;
          ????????}
          ????}
          }
          </SCRIPT>
          <BODY onload="numberCells()">
          <TABLE id=mytable border=1>
          <TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH></TR>
          <TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
          <TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
          </TABLE>
          </BODY>
          </HTML>

          1.身份證嚴(yán)格驗(yàn)證:

          <script>
          var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",21:"遼寧",22:"吉林",23:"黑龍江 ",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北 ",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏 ",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺(tái)灣",81:"香港",82:"澳門",91:"國外 "}
          ??
          function cidInfo(sId){
          var iSum=0
          var info=""
          if(!/^\d{17}(\d|x)$/i.test(sId))return false;
          sId=sId.replace(/x$/i,"a");
          if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地區(qū)";
          sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
          var d=new Date(sBirthday.replace(/-/g,"/"))
          if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
          for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
          if(iSum%11!=1)return "Error:非法證號(hào)";
          return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
          }

          document.write(cidInfo("380524198002300016"),"<br/>");
          document.write(cidInfo("340524198002300019"),"<br/>")
          document.write(cidInfo("340524197711111111"),"<br/>")
          document.write(cidInfo("34052419800101001x"),"<br/>");
          </script>

          2.驗(yàn)證IP地址
          <SCRIPT LANGUAGE="java script">
          function isip(s){
          var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
          var re=s.split(".")
          return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
          }

          var s="202.197.78.129";
          alert(isip(s))
          </SCRIPT>

          posted on 2007-07-30 17:53 李云澤 閱讀(295) 評(píng)論(0)  編輯  收藏 所屬分類: javascript

          主站蜘蛛池模板: 太湖县| 鄯善县| 辽宁省| 福建省| 渝北区| 乌恰县| 南充市| 克东县| 东乡县| 奉节县| 库尔勒市| 安吉县| 闽清县| 武冈市| 乌兰县| 高尔夫| 景谷| 弥渡县| 锦屏县| 中江县| 鄂州市| 信阳市| 宝清县| 邢台县| 泸州市| 封开县| 富阳市| 贺兰县| 龙海市| 敖汉旗| 周口市| 耿马| 龙泉市| 扎囊县| 海伦市| 建瓯市| 宝兴县| 唐山市| 溧水县| 柳江县| 德昌县|