js前端驗證腳本

文章分類:Web前端 JS表單腳本輸入驗證 *以下是庫函數目錄及使用說明: * *常用 *1、Trim=去除字符串前後空格 使用方法:String.trim() *2、ctrim=去除字符串中間空格 使用方法:String.ctrim() *3、onClickSelect=點中text框的時候,選中其中的文字 使用方法:在input位置加上 onClick/onFocus="onClickSelect();" 即可 * *動態輸入類 使用方法:在input位置加上 onkeypress="函數名" 即可 *1、TextOnly=只允許輸入字母、數字、下劃線 *2、TextNumOnly=只允許輸入字母、數字 *3、NumOnly=只允許輸入數字 *4、TelOnly=只能輸入電話、"-"、"("、")" * *表單驗證類 *1、isAccount=是否帳號(由字母、數字、下劃線組成){有兩種選擇,一種有長度限制} *2、isChinese=是否中文(由中文、數字、字母組成) *3、ismail=是否Email *4、isip=是否ip *5、PhoneCheck=電話號碼檢測(電話和手機) *6、isMobile=手機號碼檢測 *7、isDate=是否短日期 *8、isTime=是否時間 *9、isDateTime=是否長日期 * *其它函數 *1、changeFrame=改變Frame大小 *2、CheckAll=全選/全不選 *3、onKeyDownDefault=回車->轉->Tab *4、admin_Size=改變TextArea輸入框高度 * *其它驗證正則表達式 *Email : /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/ *Phone : /^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$/ *Url : /^http:////[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/ *Currency : /^/d+(/./d+)?$/ *Number : /^/d+$/ *Zip : /^[1-9]/d{5}$/ *QQ : /^[1-9]/d{4,8}$/ *Integer : /^[-/+]?/d+$/ *Double : /^[-/+]?/d+(/./d+)?$/ *English : /^[A-Za-z]+$/ *Chinese : /^[/u0391-/uFFE5]+$/ *UnSafe : /^(([A-Z]*|[a-z]*|/d*|[-_/~!@#/$%/^&/*/./(/)/[/]/{/}<>/?/////'/"]*)|.{0,5})$|/s/ *Username : /^[a-z]/w{3,}$/i(用戶名驗證,帶長度限制) */ //========================================================================常用函數 //--------------------------------除去前後空格 String.prototype.trim = function() { //用正則表達式將前後空格用空字符串替代。 return this.replace(/(^/s*)|(/s*$)/g, ""); } //--------------------------------除去中間空格 String.prototype.ctrim = function() { //用正則表達式將中間空格用空字符串替代。 return this.replace(//s/g,''); } //--------------------------------點中text框的時候,選中其中的文字 /** *方法名:onClickSelect *描述:點中text框的時候,選中其中的文字 *輸入:空 *輸出:空 **/ function onClickSelect() { var obj = document.activeElement; if(obj.tagName == "TEXTAREA") { obj.select(); } if(obj.tagName == "INPUT" ) { if(obj.type == "text") obj.select(); } } //========================================================================動態輸入類函數 //--------------------------------只允許輸入字母、數字、下劃線(動態判斷) function TextOnly(){ var i= window.event.keyCode //8=backspace //9=tab //37=left arrow //39=right arrow //46=delete //48~57=0~9 //97~122=a~z //65~90=A~Z //95=_ if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==95)||(i==8)||(i==9)|| (i==37)||(i==39)||(i==46))) { //window.event.keyCode=27; event.returnValue=false return false; } else { //window.event.keyCode=keycode; return true; } } //--------------------------------只允許輸入字母、數字(動態判斷) function TextNumOnly(){ var i= window.event.keyCode //8=backspace //9=tab //37=left arrow //39=right arrow //46=delete //48~57=0~9 //97~122=a~z //65~90=A~Z //95=_ if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==8)||(i==9)||(i==37)|| (i==39)||(i==46))) { //window.event.keyCode=27; event.returnValue=false return false; } else { //window.event.keyCode=keycode; return true; } } //--------------------------------只允許輸入數字(動態判斷) /** *方法名:NumOnly() *描述:只允許輸入數字 *輸入:空 *輸出:空 **/ function NumOnly(){ var i= window.event.keyCode //8=backspace //9=tab //37=left arrow //39=right arrow //46=delete //48~57=0~9 if ((i>57 || i<48) && (i!=8) && (i!=9) && (i!= 37) && (i!=39) && (i!=46)) { window.event.keyCode=27; return false; } else { //window.event.keyCode=keycode; return true; } } //--------------------------------只能輸入電話號碼或者"-"或者"("或者")" function TelOnly(){ var i= window.event.keyCode //8=backspace //9=tab //37=left arrow //39=right arrow //46=delete //48~57=0~9 //40=( //41=) //45=- //32=空格 if ((i>57 || i<48) && (i!=8) && (i!=9) && (i!= 37) && (i!=39) && (i!=46) && (i!=40) && (i!=41) && (i!=45) && (i!=32)) { window.event.keyCode=27; return false; } else { //window.event.keyCode=keycode; return true; } } //========================================================================動態輸入函數(結束 ) //========================================================================表單驗證函數 //--------------------------------判斷用戶名(判斷字符由字母和數字,下劃線,點號組成.且開頭的只能是下劃線和字母) function isAccount(str) { if(/^[a-z]/w{3,}$/i.test(str)) //用戶名由字母和數字、下劃線組成,且只能以字母開頭,且長度最小爲4位 //if(/^([a-zA-z]{1})([/w]*)$/g.test(str))//用戶名由字母和數字、下劃線組成,且只能以字母開頭 { //alert('); return true; } else return false; } //--------------------------------判斷只能輸入中文、數字、字母 function isChinese(str) { var pattern = /^[0-9a-zA-Z/u4e00-/u9fa5]+$/i; if (pattern.test(str)) { return true; } else { //alert("只能包含中文、字母、數字"); return false; } } //--------------------------------Email格式判斷 function ismail(email) { return(new RegExp(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9] +$/).test(email)); } //--------------------------------IP格式判斷 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; } //--------------------------------判斷電話號碼/手機號碼 function PhoneCheck(s) { var str=s; var reg=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1} 13[0-9]{9}$)/; //alert(reg.test(str)); return reg.test(str); } //--------------------------------判斷手機號碼 function isMobile(str) { var reg=/^0{0,1}13[0-9]{9}$/; return reg.test(str); } //--------------------------------短日期(如2003-12-05) function isDate(str) { var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/); if(r==null) { //alert('輸入的信息不是日期格式(YYYY:MM:DD)'); return false; } if (r[1]<1 || r[3]<1 || r[3]-1>12 || r[4]<1 || r[4]>31) { //alert("日期格式(YYYY:MM:DD)不對"); 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]); } //--------------------------------短時間(如13:04:06) function isTime(str) { var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/); if (a == null) { //alert('輸入的信息不是時間格式(HH:MM:SS)'); return false; } if (a[1]>23 || a[1]<0 || a[3]>60 || a[3]<0 || a[4]>60 || a[4]<0) { //alert("時間格式(0<=HH<23:0<=MM<60:0<=SS<60)不對"); return false } return true; } //--------------------------------長時間(如2003-12-05 13:04:06) function isDateTime(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) { //alert('輸入的信息不是時間格式(YYYY-MM-DD HH:MM:SS)'); 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]); } //========================================================================表單驗證函數(結束 ) //========================================================================其它函數 //用於改變當前後臺框架的尺寸(參數:對象,關閉時顯示圖片,打開時顯示圖片,關閉顯示尺寸,打開顯示尺寸) // 例:this,'../images/openout.gif','../images/setby.gif','top.frame.cols=/'0,*/'','top.frame.c ols=/'150,*/'' function changeFrame(ob,s1,s2,evalString1,evalString2) { if (ob.alt == "收起") { ob.alt = "展開"; ob.src = s1; eval(evalString1); } else { ob.alt = "收起"; ob.src = s2; eval(evalString2); } } //用於全選/全不選(參數form=表單) function CheckAll(form) { for (var i=0;i轉換-->按tab鍵 /** *方法名:onKeyDownDefault *描述:用戶在button以外的頁面元素中按回車,轉換爲按tab鍵 *輸入:空 *輸出:空 **/ function onKeyDownDefault() { if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){ if (window.event.srcElement.type != "button") window.event.keyCode = 9; } else{ return true; } } // 修改編輯欄高度 function admin_Size(num,objname) { var obj=document.getElementById(objname) if (parseInt(obj.rows)+num>=3) { obj.rows = parseInt(obj.rows) + num; } if (num>0) { obj.width="90%"; } } //取得字符串中中文/漢字的個數 function getChineseNum(obstring) { var pattern = /^[/u4e00-/u9fa5]+$/i; var maxL,minL; maxL = obstring.length; //原始長度 obstring = obstring.replace(pattern,""); minL = obstring.length; //處理後的長度 return (maxL - minL) }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章