一个很强的验证脚本

var Page_ValidationVer = "125";
var Page_IsValid = true;
var Page_BlockSubmit = false;
var Msg="";
///验证入口
function Page_ClientValidate()
{
var i;
    for (i = 0; i < Page_Validators.length; i++) {
        if(!ValidatorValidate(Page_Validators[i]))
        {
   MsgBox(Page_Validators[i]);
   event.returnValue = false;
   return false;
        }
    }

}
function MsgBox(val)
{
if(Msg!="")
{
  Msg="(错误提示:"+Msg+")";
}
alert(ValidatorErrorMsg(val)+"/r/n"+Msg);
}
///单个验证
function ValidatorValidate(val) {
var control = ValidatorControl(val.controltovalidate);
value=ValidatorGetValue(control);
if(!MaxLength(val.MaxLength,value)) return false;
flag=true;
if(value=="")
{
  control.focus();
  Msg="文本框不能为空!";
  return val.AllowNull=="True";
}
var dataType = val.DataType;
if(dataType=="Empty")
{
  flag= true;
}
else if(dataType =="String")
    {
  flag = IsString(value);
    }
    else if(dataType =="Letter")
    {
  flag = IsLetter(value);
    }
    else if (dataType == "StringInteger") {
        flag= IsStringInteger(value);
    }
else if (dataType == "Integer") {
        flag= IsInteger(value);
    }
    else if(dataType =="Chinese")
    {
  flag = IsChinese(value);
    }
    else if(dataType =="UnSignIntger")
    {
  flag = IsUnSignIntger(value);
    }
    else if(dataType == "Double") {
        flag = IsDouble(value);
    }
    else if(dataType =="Email")
    {
  flag = IsEmail(value);
    }
    else if(dataType =="IP")
    {
  flag = IsIP(value);
    }
    else if(dataType =="Phone")
    {
  flag = IsPhone(value);
    }
    else if(dataType =="ZIP")
    {
  flag = IsZIP(value);
    }
    else if (dataType == "Currency") {
        flag = IsCurrency(value);         
    }
    else if (dataType == "Date") {
  flag = IsDate(value);
    }
    else if(dataType =="Time")
    {
  flag = IsTime(value);
    }
    else if (dataType == "DateTime") {
  flag = IsDateTime(value);
    }
    else
    {
  flag = IsOther(value);
    }
    
    if(flag==false)
    {
  control.focus();
    }
return flag;
}
///获取验证的错误消息
function ValidatorErrorMsg(val)
{
    return val.errormessage;
}
///获取控件对象
function ValidatorControl(id)
{
var control;
    control = document.all[id];
    return control
}
function ValidatorGetValue(control) {
    
    if (typeof(control.value) == "string") {
        return control.value;
    }
    if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {
        var j;
        for (j=0; j < control.length; j++) {
            var inner = control[j];
            if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {
                return inner.value;
            }
        }
    }
    else {
        return ValidatorGetValueRecursive(control);
    }
    return "";
}
function ValidatorGetValueRecursive(control)
{
    if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) {
        return control.value;
    }
    var i, val;
    for (i = 0; i<control.children.length; i++) {
        val = ValidatorGetValueRecursive(control.children[i]);
        if (val != "") return val;
    }
    return "";
}
function IsInteger(val)
{
reg=/^[-+]?/d*$/;
Msg="请输入阿拉伯数字!";
return Check(val,reg);
}
function IsDouble(val)
{
reg=/^[-+]?/d+(/./d+)?$/;
Msg="请输入数字,如:5.63";
return Check(val,reg);
}
function IsEmail(val)
{
reg=/^[/w-/.]+@([/w-]+/.)+[/w-]{2,4}$/;
Msg="请输入合法的Email地址";
return Check(val,reg);
}
function IsCurrency(val)
{
reg=/^[$¥]?(/d{1,3}(/,/d{3})*|(/d+))(/./d{2})?$/;
Msg="请输入金额,或以美元或人民币符号开头的数字,小数保留两位,如:¥1,000.00";
return Check(val,reg);
}
function IsString(val)
{
//reg=/^[a-zA-Z0-9_]+$/;
reg=/^/w+$/;
Msg="请输入规则字符串!";
return Check(val,reg);
}
function IsStringInteger(val)
{
reg=/^[a-zA-Z][0-9]+$/;
Msg="请输入首位是字母其他为数字的字符串,如:A0001";
return Check(val,reg);
}
function IsZIP(val)
{
reg=/^/d{6}$/;
Msg="请输入邮政编码,如:518000";
return Check(val,reg);
}
function IsIP(val)
{
reg=/^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$/
var r = val.match(reg);
Msg="请输入合法的IP地址,每段是0-255的整数!";
if(r==null) return false;
if(r[1]<256 && r[2] <256 && r[3]<256 && r[4]<256)
  return true;
return false;
}
function IsPhone(val)
{
//reg=/((/(/d{3}/) ?)|(/d{3}-))?/d{3}-/d{4}/;
reg=/^[1-9]/d{1,3}-/d{7,8}$|^[1-9]/d{9,10}$|^[1-9]/d{1,3}-/d{7,8}-/d{1,4}$/;
Msg="请输入电话号码,如755-88888888-1234!";
return Check(val,reg);
}
function IsUnSignIntger(val)
{
reg=/^/d*$/;
Msg="请输入阿拉伯数字!";
return Check(val,reg);
}
function IsLetter(val)
{
reg=/^[a-zA-Z]+$/;
Msg="请输入英文字母!";
return Check(val,reg);
}
function IsChinese(val)
{
reg=/^[/w/u00FF-/uFFFD]+$/ ///[^(!-//)(/:-@)(/][-/')]+$/g;
Msg="请输入字!";
return Check(val,reg);
}
function IsDate(val)
{
//reg=/([1-9][0-9]{3})-([(0|1) 0-9]{2})-([0-9]{2})/;
reg=/^(/d{4})-(/d{2})-(/d{2})$/
var r = val.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3]);
if(d.getDate()!=r[3])
{
  Msg="日期格式错误!";
  return false;
}
if(d.getMonth()!=r[2])
{
  Msg="月份格式错误!";
  return false;
}
if(d.getFullYear()!=r[1])
{
  Msg="年份格式错误!";
  return false;
}
return true;
}
function IsTime(val)
{
reg=/^((20|21|22|23|[0-1]/d)/:[0-5][0-9])(/:[0-5][0-9])?$/
Msg="时间格式输入错误,如:12:59或15:12:00";
return Check(val,reg);
}
function IsDateTime(val)
{
if(val.length<11){Msg="日期时间长度不匹配!"; return false;}

if(IsDate(val.substring(0,10)))
{
  return IsTime(val.substring(11,val.length));
}
return false;
}
function IsOther(value)
{
return true;
}
function Check(val,reg)
{
if(reg.test(val))
{
  return true;
}
return false;
}
function MaxLength(maxlen,val)
{
if(maxlen==0) return true;
mylen = strlength(val);
if(mylen<=parseInt( maxlen))
{
  return true;
}
Msg="输入的长度实际是"+mylen+",不能超过"+maxlen;
return false;
}
//判断字符长度    dev-club
function strlength(str)
{
    var l=str.length;
    var n=l
    for (var i=0;i<l;i++)
    {
        if (str.charCodeAt(i)<0||str.charCodeAt(i)>255) n++
    }
    return n
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值