做网站的时候,很多地方都是由表单提交组成的,但是有提交的地方都要有验证。客户端验证最简单的方法就是使用JS自定义函数。这个文档包含平时常用的28个验证函数,还有验证函数几种使用方法。
JS验证函数的调用方法需要注意以下几点:
验证函数的使用:<input type="text" name="text1" id="text1" onblur="test();" value="" />
function test()
{
if(document.form1.text1.value.length>50)
{
alert("不能超过50个字符!");
document.form1.text1.focus();
return false;
}
}
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('有错')"> //字母或数字
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;
}
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);" name="text1" />
function test()
{
if((document.form1.text1.value.indexOf ("***") == 0)||(document.form1.text1.value.indexOf ("****") == 0))
{
alert("存在关键字");
document.form1.text1.focus();
return false;
}
}
if(document.userinfo.userpassword.value != document.userinfo.userpassword1.value)
{
document.userinfo.userpassword.focus();
document.userinfo.userpassword.value = '';
document.userinfo.userpassword1.value = '';
alert("两次输入的密码不同,请重新输入!");
return false;
}
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('不能为空!')"> //执行单条正则验证例
正则: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=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/;
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
或者如果有以下要求:
根据这几条规则,可以与出以下正则表达式:(^[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=/(^[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" name="text1" onblur="istel(this);" />
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;
}
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;
}
}
正整数验证^[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;
}
}
正则:d{15}|d{18}
正则:d+.d+.d+.d+
正则:[1-9]d{5}(?!d)
function isPostalCode(s)
{
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}
正则:[1-9][0-9]{4,}
正则:d{3}-d{8}|d{4}-d{7}
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);
}
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;
}
function IsMobile(_str)
{
var tmp_str = trim(_str);
var pattern = /13\d{9}/;
return pattern.test(tmp_str);
}
或者
//校验手机号码:必须以数字开头,除数字外,可含有“-”
function IsMobile(s)
{
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
function checkIP()
{
obj=document.getElementById("ip").value
//ip地址
//var exp=/^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$/;
//身份证
//var exp=/b(((?!ddd)d+|1dd|2[0-4]d|25[0-5])(b|.)){4}/
//var exp=/^(d{15}|d{17}[x0-9])/
//var exp=/^([d]{15}|[d]{18}|[d]{17}[x|X])$/
var reg = obj.match(exp);
if(reg==null)
{
alert("IP地址不合法!");
}
else
{
alert("IP地址合法!");
}
}
function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
}
function isTrueName(s)
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}
function isPasswd(s)
{
var patrn=/^(w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
短时间,形如 (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]);
}
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
<input onblur="if(/^([a-zA-z_]{1})([w]*)$/g.test(this.value))alert('有错')">
function isNull(elem)
{
//var pattern=/^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.length)
{
return false;
}
else
{
return true;
}
}
function isChinese(elem)
{
var pattern=/[^x00-xff]/g;
if(pattern.test(elem))
{
//包含中文
return false;
}
else
{
//不包含中文
return true;
}
}