js表单验证

js表单验证

//file: check.js

//校验是否全由数字组成

function isDigit(s)

{

var patrn=/^[0-9]{1,20}$/;

if (!patrn.exec(s)) return false

return true

}

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

function isRegisterUserName(s)

{

var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;

if (!patrn.exec(s)) return false

return true

}

//校验用户姓名:只能输入1-30个以字母开头的字串

function isTrueName(s)

{

var patrn=/^[a-zA-Z]{1,30}$/;

if (!patrn.exec(s)) return false

return true

}

//校验密码:只能输入6-20个字母、数字、下划线

function isPasswd(s)

{

var patrn=/^(/w){6,20}$/;

if (!patrn.exec(s)) 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

}

//校验手机号码:必须以数字开头,除数字外,可含有“-”

function isMobil(s)

{

var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;

if (!patrn.exec(s)) return false

return true

}

//校验邮政编码

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

}

//邮件检测

function isEmail(theStr) {

var atIndex = theStr.indexOf('@');

var dotIndex = theStr.indexOf('.', atIndex);

var flag = true;

theSub = theStr.substring(0, dotIndex+1)

if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length))

{ return(false); }

else { return(true); }

}

//判断是否为空

function isEmpty (str) {

if ((str==null)||(str.length==0)) return true;

else return(false);

}

//判断日期

function isDate(theStr) {

 var the1st = theStr.indexOf('-');

 var the2nd = theStr.lastIndexOf('-');

 

 if (the1st == the2nd) {

   return false;

 } else {

  var y = theStr.substring(0,the1st);

  var m = theStr.substring(the1st+1,the2nd);

  var d = theStr.substring(the2nd+1,theStr.length);

  var maxDays = 31;

 

  if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {

   return false;

  } else if (y.length < 4) {

    return false ;

  } else if (!isBetween (m, 1, 12)) {

   return false;

  } else if (m==4 || m==6 || m==9 || m==11) {

   maxDays = 30;

  } else if (m==2) {

   if (y % 4 > 0) {

    maxDays = 28;

   }else if (y % 100 == 0 && y % 400 > 0) {

    maxDays = 28;

   }else{

     maxDays = 29;

   }

  }

  if (isBetween(d, 1, maxDays) == false) {

   return false;

  }

  else { return true; }

 }

}

//判断范围

function isBetween (val, lo, hi) {

if ((val < lo) || (val > hi)) { return(false); }

else { return(true); }

}

//判断是否为Int型

function isInt (theStr) {

var flag = true;

if (isEmpty(theStr)) { flag=false; }

else

{ for (var i=0; i<theStr.length; i++) {

if (isDigit(theStr.substring(i,i+1)) == false) {

flag = false; break;

}

}

}

return(flag);

}

//表单元素通用验证方法

//NU  检测是否为空

//NM  检测是否为数字

//EM  检测是否为MAIL

//LE=12  检测长度

//YY  年份

//MM  月份

//DD  日

function validateForm(add){

 var alertMessage = "";

 var elArr = eval(document.forms[0].name).elements;

 var strYY = "";

 var strMM = "";

 var strDD = "";

 for(var i = 0; i < elArr.length; i++){

  if(elArr.id){

    var aryList = (elArr.id).split(',');

    for(var j=0; j<aryList.length; j++){

       if(aryList[j].substring(0,2) == "NU"){

        if(elArr.value==""){

         alertMessage =  alertMessage + elArr.title + "不能为空!/n";

         break;

        }

       }

       if(aryList[j].substring(0,2) == "NM"){

        if(elArr.value !=""){

        if(isDigit(elArr.value)==false){

         alertMessage = alertMessage + elArr.title + "不为数字!/n";

         break;

        }

       }

       }

       if(aryList[j].substring(0,2) == "EM"){

        if(elArr.value !=""){

        if(isEmail(elArr.value)==false){

           

         alertMessage = alertMessage + elArr.title + "格式有误!/n";

         break;

        }

       }

       }

       if(aryList[j].substring(0,2) == "LE"){

        if(elArr.value !=""){

         var eleLength = elArr.value.length;

         var ordLength = aryList[j].substring(3,100);

        if( eleLength > ordLength){

         alertMessage = alertMessage + elArr.title + "长度要求为"+ ordLength +"位!/n";

         break;

        }

       } 

       } 

       if(aryList[j].substring(0,2) == "YY"){

    strYY = elArr.value;

       } 

       if(aryList[j].substring(0,2) == "MM"){

    strMM = elArr.value;

       }

       if(aryList[j].substring(0,2) == "DD"){

    strDD = elArr.value;

       }

       if(strYY != "" && strMM != "" && strDD != ""){

        if(strYY != "" && strMM != "" && strDD != ""){

        var strDate = strYY + "-" + strMM +"-"+ strDD;

        if(isDate(strDate) == false){

         alertMessage = alertMessage + "日期格式不正确/n";

         strYY = "";

         strMM = "";

         strDD = "";

        }

       }

       }

      

    }

  }

 }

 

 if(add == "true"){

  alertMessage =  addMessage(alertMessage);

 }

 

 if(alertMessage != ""){

  alert(alertMessage);

  return false;

 }else{

  return true;

 }

}

function checkboxChecked(checkboxName)

{    

    var count=0;

    var formname = document.forms[0].name;

    if(eval("document." + formname + "." + checkboxName).length!=null)

    {     

     

        for (var i = 0; i < eval("document." + formname + "." + checkboxName).length; i++)      

        {

     if (eval("document." + formname + "." + checkboxName).checked == true)

     {

      

         count=count+1;

     }

        }

    }

    else

    {   

        if (eval("document." + formname + "." + checkboxName).checked == true)

        {

     count=count+1;

        }

    }  

    return count;

}

//file: index.html 

<html>

<script language="JavaScript" src="check.js"></script>

<script>

function addMessage(message){

 message = message + "另加的错误信息/n"

 return message;

}

</script>

<body>

<form name="ordForm" id="ordForm" method="post">

<input type="test" name="name"      id="NU,NM"    title="姓名">

<input type="test" name="password"  id="NU,LE=12"    title="密码">

<input type="test" name="mail"      id="NU,EM"    title="邮件">

<input type="test" name="yyBIRTHDAY"        id="YY"    title="姓名">

<input type="test" name="mmBIRTHDAY"        id="MM"    title="密码">

<input type="test" name="ddBIRTHDAY"        id="DD"    title="邮件">

<input type="button" value="submit" onClick="validateForm(ordForm)">

</form>

</body>

</html>

//表单元素通用验证方法

//NU  检测是否为空

//NM  检测是否为数字

//EM  检测是否为MAIL

//LE=12  检测长度

//YY  年份

//MM  月份

//DD  日

 

源文档 <http://cache.baidu.com/c?word=js%3B%B1%ED%B5%A5%3B%D1%E9%D6%A4&url=http%3A//www%2E517ba%2Ecom/bbs/ShowPost%2Easp%3Fmenu%3DPrevious%26ForumID%3D58%26ThreadID%3D2989&b=30&a=19&user=baidu>

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 两个日期比较  /* 用途:检查开始日期是否小于等于结束日期 输入: s:字符串 开始日期 格式:2001-5-4 e:字符串 结束日期 格式:2002-5-4 返回: 如果通过开始日期小于等于结束日期返回true,否则返回false */ function data_compare(s,e) {  var arr=s.split("-");  var starttime=new Date(arr[0],arr[1],arr[2]);... 更多 两个日期比较 信息  为空或全是空格  /* 用途:检查输入字符串是否为空或者全部都是空格 输入:str 返回: 如果全是空返回true,否则返回false */ function isNull(str) { if (str == "") return true; var regu = "^[ ]+$"; ..... 更多 为空或全是空格 信息  判断是否是日期  /* 用途:判断是否是日期 输入:date:日期;匹配的格式: 2010-5-16 返回:如果通过验证返回true,否则返回false */ function isDate(str){ if (isNull(str)) return false;  var r = str.match(/^(\d{4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/);  if(r==null)return false;  var d= new Date(r[1], r[3]-1, r[5]); ... 更多 判断是否是日期 信息  字母数字下划线  /* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false */ function isNumberOr_Letter(s) {//判断是否是数字或字母 var regu = "^[0-9a-zA-Z\_]+$"; var re = new RegExp(regu); if (re.test(s))... 更多 字母数字下划线 信息  字符1以字符串2开始  /* 用途:字符1是否以字符串2开始 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false */ function isFirstMatch(str1, str2) { var index = str1.indexOf(str2); if (index == 0) return true; return false; } 更多 字符1以字符串2开始 信息  字符1以字符串2结束  /* 用途:字符1是否以字符串2结束 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false */ function isLastMatch(str1, str2) { var index = str1.lastIndexOf(str2); if (str1.length == index + str2.length) return true; return false; } 更多 字符1以字符串2结束 信息  字符1包含字符串2  /* 用途:字符1是包含字符串2 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false */ function isMatch(str1, str2) { var index = str1.indexOf(str2); if (index == -1) return false; return true; } 更多 字符1包含字符串2 信息  是否为email  /* 用途:检查输入对象的值是否符合E-Mail格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false */ function isEmail(str) { var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/; if (myReg.test(str)) return true; return false; } 更多 是否为email 信息  是否为手机号码  /* 用途:检查输入手机号码是否正确 输入: s:字符串 返回: 如果通过验证返回true,否则返回false */ function checkMobile(s) { var regu = /^[1][0-9][0-9]{9}$/; var re = new RegExp(regu); if (re.test(s)) .... 更多 是否为手机号码 信息  是否为数字  /* 用途:检查输入字符串是否是数字 输入: str:字符串 返回: 如果通过验证返回true,否则返回false */ function isNumber(str)  {              var reg = /^\d+$/;     if (reg.test(str))... 更多 是否为数字 信息  是否为时间  /* 用途:检查输入字符串是否符合时间格式 输入: time:字符串 返回: 如果通过验证返回true,否则返回false */ function isTime(time){  var regex = /^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/;  if(!regex.test(time)){    return false;  } .... 更多 是否为时间 信息  是否为正整数  /* 用途:检查输入字符串是否符合正整数格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false */ function isNumber(s) { var regu = "^[0-9]+$"; var re = new RegExp(regu); if (s.search(re) != -1) ... 更多 是否为正整数 信息  是否为电话号码  /* 用途:检查输入字符串是否符合国内固话或者传真格式 输入: s:字符串  格式例如:020-87110252 返回: 如果通过验证返回true,否则返回false */ function isTel(s){   var reg=/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;   if(!reg.test(s))... 更多 是否为电话号码 信息  是否为端口号  /* 用途:检查输入对象的值是否符合端口号格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false */ function isPort(str) { return (isNumber(str) && str < 65536); } 更多 是否为端口号 信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值