JS验证函数的调用方法和注意: 
1.给表单设置onsubmit="return test()",配合<input type="submit" value="check"> 进行提交. 
2.<input type=text onkeydown="test();"> //当鼠标按下直接调用函数验证 
3.<input type=text onblur="testl(this.value)"> //传入自己的值进行验证,test(this)//传入对象本身进行验证 
4.<input type="button" value="test"> //单击Btn进行验证,如果通过则用document.forms[0].submit(); 进行表单提交 
5.<input type="submit" value=" 提交信息 ">//使用submit进行提交验证,如果test中return false;则不提交返true提交. 
6.<script type="javascript">....function test(){...return false;...}...</script> 
7.||与,&&或,!非 
8.常用事件:onblur失去焦点,onchange失去焦点并且内容发生改变,onfocus元素获得焦点,onreset当表单中RESET的属性被激发时,onsubmit表单被提交时触发此事件 
9.验证正则表达式:if(/^[1-9]\d*$/.test(str))返回真则通过,FALSE通不通过 
10.document.getElementById("ip").value//访问ID的值,document.form1.text1.value//通过name访问 
11.<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> //执行单条正则验证例 
验证函数: 
<input type="text" onblur="test();" value="" /> 
1.字符长度限制 
function test() 
{ 
if(document.form1.text1.value.length>50) 
{ 
alert("不能超过50个字符!"); 
document.form1.text1.focus(); 
return false; 
} 
} 
2.只能是英文,字母或数字 
function test() 
{ 
if(!(event.keyCode>=65&&event.keyCode<=90)) 
{ 
alert("只能是英文!"); 
document.form1.text1.focus(); 
} 
} 
<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"> //字母或数字 
3.只能是数字 
function test() 
{ 
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) //考虑小键盘上的数字键 
{ 
alert("只能是数字!"); 
document.form1.text1.focus(); 
} 
} 
或者 
function test(NUM) 
{ 
var i,j,strTemp; 
strTemp="0123456789"; 
if ( NUM.length== 0) 
return 0 
for (i=0;i<NUM.length;i++) 
{ 
j=strTemp.indexOf(NUM.charAt(i)); 
if (j==-1) 
{ 
alert("只能是数字!"); 
return false; 
} 
} 
//说明是数字 
return true; 
} 
5.验证邮箱(正则,函数) 
function isEmail(strEmail) { 
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) 
return true; 
else 
alert("格式错误!"); 
} 
function isEmail() { 
if (document.userinfo.useremail.value.charAt(0)=="." || 
document.userinfo.useremail.value.charAt(0)=="@"|| 
document.userinfo.useremail.value.indexOf('@', 0) == -1 || 
document.userinfo.useremail.value.indexOf('.', 0) == -1 || 
document.userinfo.useremail.value.lastIndexOf("@")==document.userinfo.useremail.value.length-1 || 
document.userinfo.useremail.value.lastIndexOf(".")==document.userinfo.useremail.value.length-1) 
{ 
alert("Email地址格式不正确!"); 
document.userinfo.useremail.focus(); 
return false; 
} 
} 
<input type="text" onblur="isEmail(this.value);" /> 
6.屏蔽关键字(这里屏蔽***和****) 
function test() { 
if((document.form1.text1.value.indexOf ("***") == 0)||(document.form1.text1.value.indexOf ("****") == 0)){ 
alert("存在关键字"); 
document.form1.text1.focus(); 
return false; 
} 
} 
7.比较两次输入是否相同 
if(document.userinfo.userpassword.value != document.userinfo.userpassword1.value) { 
document.userinfo.userpassword.focus(); 
document.userinfo.userpassword.value = ''; 
document.userinfo.userpassword1.value = ''; 
alert("两次输入的密码不同,请重新输入!"); 
return false; 
} 
8.判断是否为空或空格组成 
function test(){ 
if(checkspace(document.form1.text1.value)) { 
document.form1.text1.focus(); 
alert("为空或包含空格组成!"); 
return false; 
} 
} 
function checkspace(checkstr) { 
var str = ''; 
for(i = 0; i < checkstr.length; i++) { 
str = str + ' '; 
} 
return (str == checkstr); 
} 
或者: 
<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> //执行单条正则验证例 
9. 验证是否是数字电话,只能是数字和- 
正则:\d{3}-\d{8}|\d{4}-\d{7} 
function istel(elem) { 
var str=elem.value; 
var oneDecimal=false; 
var oneChar=0; 
str=str.toString( ); 
for (var i=0; i<str.length; i++) { 
oneChar=str.charAt(i).charCodeAt(0); 
if(oneChar==45){ continue; } 
if(oneChar<48 || oneChar > 57) { 
alert("此项只能输入数字和'-'号."); 
return false; 
} 
} 
return true; 
} 
或者 
function fucCheckTEL(TEL) 
{ 
var i,j,strTemp; 
strTemp="0123456789-()# "; 
for (i=0;i<TEL.length;i++) 
{ 
j=strTemp.indexOf(TEL.charAt(i)); 
if (j==-1) 
{ 
alert("此项只能输入数字和'-'号."); 
return false; 
} 
} 
//说明合法 
return true; 
} 
或者 
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 
function isTel(s) 
{ 
//var patrn=https://www.jb51.net/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; 
var patrn=https://www.jb51.net/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
if (!patrn.exec(s)) return false 
return true 
} 
或者 
要求: 
  (1)电话号码由数字、"("、")"和"-"构成 
  (2)电话号码为3到8位 
  (3)如果电话号码中包含有区号,那么区号为三位或四位 
  (4)区号用"("、")"或"-"和其他部分隔开 
  (5)移动电话号码为11或12位,如果为12位,那么第一位为0 
  (6)11位移动电话号码的第一位和第二位为"13" 
  (7)12位移动电话号码的第二位和第三位为"13" 
  根据这几条规则,可以与出以下正则表达式: 
  (^[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}$) 
function PhoneCheck(s) { 
var str=s; 
var reg=https://www.jb51.net/(^[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)); 
} 
<input type="text" onblur="istel(this);" /> 
10.//当opt2为1时检查num是否是负数//当opt1为1时检查num是否是小数//返回1是正确的,0是错误的 
function chknbr(num,opt1,opt2) 
{ 
var i=num.length; 
var staus; 
//staus用于记录.的个数 
status=0; 
if ((opt2!=1) && (num.charAt(0)=='-')) 
{ 
alert("You have enter a invalid number."); 
return 0; 
} 
//当最后一位为.时出错 
if (num.charAt(i-1)=='.') 
{ 
alert("You have enter a invalid number."); 
return 0; 
} 
for (j=0;j<i;j++) 
{ 
if (num.charAt(j)=='.') 
{ 
status++; 
} 
if (status>1) 
{ 
alert("You have enter a invalid number."); 
return 0; 
} 
if (num.charAt(j)<'0' || num.charAt(j)>'9' ) 
{ 
if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0)) 
{ 
alert("You have enter a invalid number."); 
return 0; 
} 
} 
} 
return 1; 
} 
11.检查是否数字或字母组成的串 
function test(str) 
{ 
var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
var ch; 
var i; 
var temp; 
for (i=0;i<=(str.length-1);i++) 
{ 
ch = str.charAt(i); 
temp = strSource.indexOf(ch); 
if (temp==-1) 
{ 
alert("格式不正确!"); 
return false; 
} 
} 
if (strSource.indexOf(ch)==-1) 
{ 
alert("格式不正确!"); 
return false; 
} 
else 
{ 
return true; 
} 
} 
12.数字验证 
正整数验证^[1-9]\d*$,负整数验证^-[1-9]\d*$ ,整数^-?[1-9]\d*$,非负整数^[1-9]\d*|0$,非正正数^-[1-9]\d*|0$,浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 
function test(str){ 
if(/^[1-9]\d*$/.test(str)) 
{ 
alert("格式不能!"); 
return false; 
} 
else 
{ 
return true; 
} 
} 
13.身份证 
正则:\d{15}|\d{18} 
14.IP地址 
正则:\d+\.\d+\.\d+\.\d+ 
15.邮政编码 
正则:[1-9]\d{5}(?!\d) 
function isPostalCode(s) 
{ 
//var patrn=https://www.jb51.net/^[a-zA-Z0-9]{3,12}$/; 
var patrn=https://www.jb51.net/^[a-zA-Z0-9 ]{3,12}$/; 
if (!patrn.exec(s)) return false 
return true 
} 
16.QQ号 
正则:[1-9][0-9]{4,} 
17.HTML标记 
正则:\d{3}-\d{8}|\d{4}-\d{7} 
18.是否有效的颜色值 
function IsColor(color){ 
var temp=color; 
if (temp=="") return true; 
if (temp.length!=7) return false; 
return (temp.search(/\\#[a-fA-F0-9]{6}/) != -1); 
} 
19.是否有效的链接 
function IsURL(url){ 
var sTemp; 
var b=true; 
sTemp=url.substring(0,7); 
sTemp=sTemp.toUpperCase(); 
if ((sTemp!="HTTP://")||(url.length<10)){ 
b=false; 
} 
return b; 
} 
20.是否有效的手机号码 
function IsMobile(_str){ 
var tmp_str = trim(_str); 
var pattern = /13\\d{9}/; 
return pattern.test(tmp_str); 
} 
或者 
//校验手机号码:必须以数字开头,除数字外,可含有“-” 
function IsMobile(s) 
{ 
var patrn=https://www.jb51.net/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
if (!patrn.exec(s)) return false 
return true 
} 
21.IP地址和身份证号验证(正则) 
function checkIP() 
{ 
obj=document.getElementById("ip").value 
//ip地址 
//var exp=https://www.jb51.net/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
//身份证 
//var exp=https://www.jb51.net/\b(((?!\d\d\d)\d+|1\d\d|2[0-4]\d|25[0-5])(\b|\.)){4}/ 
//var exp=https://www.jb51.net/^(\d{15}|\d{17}[x0-9])/ 
//var exp=https://www.jb51.net/^([\d]{15}|[\d]{18}|[\d]{17}[x|X])$/ 
var reg = obj.match(exp); 
if(reg==null) 
{ 
alert("IP地址不合法!"); 
} 
else 
{ 
alert("IP地址合法!"); 
} 
} 
22.校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 
function isRegisterUserName(s) 
{ 
var patrn=https://www.jb51.net/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 
if (!patrn.exec(s)) return false 
return true 
} 
23.校验用户姓名:只能输入1-30个以字母开头的字串 
function isTrueName(s) 
{ 
var patrn=https://www.jb51.net/^[a-zA-Z]{1,30}$/; 
if (!patrn.exec(s)) return false 
return true 
} 
24.校验密码:只能输入6-20个字母、数字、下划线 
function isPasswd(s) 
{ 
var patrn=https://www.jb51.net/^(\w){6,20}$/; 
if (!patrn.exec(s)) return false 
return true 
} 
25.日期时间类 
短时间,形如 (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; 
} 
短日期,形如 (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]); 
} 
长时间,形如 (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]); 
} 
26.判断字符全部由a-Z或者是A-Z的字字母组成 
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"> 
27.判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 
<input onblur="if(/^([a-zA-z_]{1})([\w]*)$/g.test(this.value))alert('有错')"> 
28.表单的值不能为空,不能超过imax字符,不能少于imix字符,输入为中文判断 
function isNull(elem){ 
//var pattern=https://www.jb51.net/^\s+|\s+$/; 
if(elem.replace(/(^\s+|\s$)/g, "")==""){ 
return false; 
}else{ 
return true; 
} 
} 
function imax(elem){ 
if(elem.length>imax){ 
return false; 
}else{ 
return true; 
} 
} 
function imix(elem){ 
if(elem.lengthreturn false; 
}else{ 
return true; 
} 
} 
function isChinese(elem){ 
var pattern=https://www.jb51.net/[^\x00-\xff]/g; 
if(pattern.test(elem)){ 
//包含中文 
return false; 
}else{ 
//不包含中文 
return true; 
} 
}
您可能感兴趣的文章:
