我們經常對提交數據進行一些有效行檢測,為避免重復的無聊的工作,現在我寫好一個模塊,大家隨便擴展吧========chkData.htm==========
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript" src="chkData.js"></script>
</HEAD><BODY>
<FORM METHOD=POST ACTION="" name="form1">
<table>
<tr><td>
不得為空:<INPUT TYPE="text" NAME="data"><br/>
必須為日期型:<INPUT TYPE="text" NAME="emp_date"><br/>
標准E_mail﹕<INPUT TYPE="text" NAME="EMail"><br/>
全部英文﹕<INPUT TYPE="text" NAME="English"><br/>
輸入數字﹕<INPUT TYPE="text" NAME="Number"><br/>
輸入英文或數字或.﹕<INPUT TYPE="text" NAME="en"><br/>
輸入中文﹕<INPUT TYPE="text" NAME="onlyCh"><br/>
不得輸入中文﹕<INPUT TYPE="text" NAME="notCh"><br/>
<INPUT TYPE="submit" value="提交">
</td></tr></table>
</FORM>
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
var obj=new chkForm("form1")
obj.isPass("data","isZero");
obj.isPass("data","isNumeric");
obj.isPass("emp_date","isDate");
obj.isPass("EMail","isEmail","請輸入標准格式e_mail﹐請改正");
obj.isPass("English","isEnglish");
obj.isPass("Number","isNumeric");
obj.isPass("en","isEN");
obj.isPass("onlyCh","isChinese");
obj.isPass("notCh","isNoChinese");
</SCRIPT>
==============chkData.js=============
function String.prototype.trim(){return  this.replace(/(^\s*)|(\s*$)/g, "");}function isDate(s,msg){
if (s.value.length==0)return true;
if (!msg)msg='不存在該日期﹐請改正';
var str=s.value
var reg = /^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g; 
var r = reg.exec(str); 
if(r==null){alert(msg);s.select();return false;}
var d = new Date(r[1], r[3]-1,r[5]); 
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
var reg=/(\/|-)(0*)( *)([1-9])/g
var t=s.value.replace(reg,'$1$4')
if (newStr==t){return true;}
s.focus();
s.select();
alert(msg);
return false;
}function isEmail(s,msg){
if (s.value.length==0)return true;
var reg = /^([a-z]){1,}([\.a-z0-9_\-]){1,}([a-z0-9]){1,}@([a-z0-9_-]){3,}(\.([a-z0-9]){2,4}){1,2}$/gi; 
if (reg.test(s.value))return true;
else {
alert((msg?msg:'請輸入標准格式E_mail'));
s.focus();
s.select()
return false;
}
}function isEnglish(s,msg){
var reg=/^[a-z]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'該欄只能輸入英文﹐請改正'));
s.focus();
s.select();
return false;
}
}function isChinese(s,msg){
var reg = /[^\u4E00-\u9FA5]/g;
if (reg.test(s.value)){
s.focus();
s.select()
alert((msg?msg:'該欄只能輸入中文﹐請改正'));
return false;
}
return true;
}function isNoChinese(s,msg){
var reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
if (reg.test(s.value)){s.select()
alert((msg?msg:'該欄不能輸入中文及全角符號﹐請改正'));
return false;
}
return true;
}function isZero(s,msg){
var str=s.value.trim();
if (str.length!=0)return true
else {
alert((msg?msg:'該欄不能為空﹐請改正'));
s.focus();
s.select();
return false;
}
}function isNumeric(s,msg){
if (s.value*1!=s.value){
alert((msg?msg:'該欄為只能輸入數字﹐請改正'))
s.focus();
s.select()
return false
}
return true
}function isEN(s,msg){
var reg=/^[a-z0-9.]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'該欄只能輸入英文和數字﹐請改正'));
s.focus();
s.select();
return false;
}
}function chkForm(frmName){
this.frmName=frmName;
this.chkFunBody = "";
this.isPass = function(eleName,chkFun,strMsg){
this.chkFunBody += chkFun+"("+this.frmName+"."+eleName
if(strMsg)this.chkFunBody +=",\""+strMsg+"\""
this.chkFunBody +=") && "
var tmp = "return( "+ this.chkFunBody +" true)"
eval(this.frmName+".onsubmit=Function('"+tmp+"');");
}
}