<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我思故我強

    js客戶端驗證

    驗證類
    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;
    ??????}

    3.7 復選框的全選,多選,全不選,反選
    <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>

    寫注冊表:
    <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相關(客戶端動態增加行列)
    <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.身份證嚴格驗證:

    <script>
    var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",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:"臺灣",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:非法地區";
    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:非法證號";
    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.驗證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 李云澤 閱讀(292) 評論(0)  編輯  收藏 所屬分類: javascript

    主站蜘蛛池模板: 深夜福利在线视频免费| 国产v亚洲v天堂a无| 亚洲一区二区三区免费| 国产乱弄免费视频| 又粗又长又爽又长黄免费视频 | 亚洲免费福利在线视频| 国产91色综合久久免费分享| 亚洲视频免费播放| 国产成人精品免费视| 亚洲国产日产无码精品| 免费无码黄十八禁网站在线观看| 亚洲成A人片在线播放器| 日本无吗免费一二区| 色老头综合免费视频| 国产亚洲人成网站在线观看不卡| 久久免费线看线看| 亚洲欧洲日本国产| 成年人网站在线免费观看| 亚洲国产成人无码AV在线 | 亚洲精品无码永久中文字幕| 特级做A爰片毛片免费看无码| 亚洲AV无码专区电影在线观看 | 99精品视频在线视频免费观看| 亚洲精品视频观看| 插B内射18免费视频| 日韩在线一区二区三区免费视频 | 免费91麻豆精品国产自产在线观看| 久久亚洲一区二区| 久久笫一福利免费导航| 黄网站色成年片大免费高清| 亚洲热线99精品视频| 无码区日韩特区永久免费系列| 免费的黄色的网站| 亚洲狠狠综合久久| 麻豆国产入口在线观看免费 | 亚洲综合色丁香婷婷六月图片| 亚洲AⅤ永久无码精品AA| 久久99免费视频| 色窝窝亚洲AV网在线观看| 国产亚洲精品资源在线26u| 在人线av无码免费高潮喷水|