javascript 通用验证函数库
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 348
/*@author:slchen@exemple:varemail="slchen@xxxxx.com"alert($v.IsEmail(email))*/var$v=(function(){Fun
/*
@author:slchen
@exemple:
 var email="slchen@xxxxx.com";
 alert($v.IsEmail(email));
*/
var $v=(function(){

Function.prototype.method 
= function(name, fn) {

this.prototype[name] = fn;

};

var Validator=function(){

};

//是否邮件
Validator.method('IsEmail'function(obj) {

    
var re=new RegExp(ValidatorRegex.Email);

    
return re.test(obj);
});

//是否电话,电话号码格式为国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)
Validator.method('IsTelephone'function(obj) {

    
var re=new RegExp(ValidatorRegex.Telephone);

    
return re.test(obj);
});

//是否手机号码
Validator.method('IsMobile'function(obj) {

    
var re=new RegExp(ValidatorRegex.Mobile);

    
return re.test(obj);
});


//是否网址
Validator.method('IsUrl'function(obj) {

    
var re=new RegExp(ValidatorRegex.Url);

    
return re.test(obj);
});

//是否身份证
Validator.method('IsIdCard'function(obj) {
    
var num=obj.toLowerCase().match(/./g);

        
if (obj.match(/^\d{17}[\dx]$/i)){

            
var sum=0,times=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];

            
for (var i=0;i<17;i++)
                sum
+=parseInt(num[i],10)*times[i];
            
if ("10x98765432".charAt(sum%11)!=num[17])
                
return false;
            
return !!obj.replace(/^\d{6}(\d{4})(\d{2})(\d{2}).+$/,"$1-$2-$3").isDateTime();
        }
        
if (obj.match(/^\d{15}$/))
            
return !!obj.replace(/^\d{6}(\d{2})(\d{2})(\d{2}).+$/,"19$1-$2-$3").isDateTime();
        
return false;
});

//是否日期
Validator.method('IsDate'function(obj) {
        
var date=obj===false?obj:obj.parseStdDate(false);
        
if (!date) return false;
        
var arr=date.match(/^((19|20)\d{2})-(\d{1,2})-(\d{1,2})$/);
        
if (!arr) return false;
        
for (var i=1;i<5;i++)
            arr[i]
=parseInt(arr[i],10);
        
if(arr[3]<1||arr[3]>12||arr[4]<1||arr[4]>31return false;
        
var _t_date=new Date(arr[1],arr[3]-1,arr[4]);
        
return _t_date.getDate()==arr[4]?_t_date:null;
});

//是否为空
Validator.method('IsNullOrEmpty'function(obj) {
        
if(!obj||obj=='null'||typeof(obj)==undefined || obj=="" || obj.length==0){
        
return true;
    }
    
else{
        
return false;
    }
});



//是否是整数
Validator.method('IsInteger'function(obj) {
    
var num=new RegExp(ValidatorRegex.Integer);
    
if (isNaN(obj)) {
        
return false
    }
    
else{
        
return num.test(obj);
    }    
});


//是否是小数
Validator.method('IsDecimal'function(obj) {
    
if (isNaN(obj)) {
        
return false
    }
    
else{
    
var num=new RegExp(ValidatorRegex.Decimal);
    
    
return num.test(obj);    
    }
});


//是否是正整数
Validator.method('IsPositiveInteger'function(obj) {
    
    
if (isNaN(obj)) {
        
return false
    }
    
else{
    
var num=new RegExp(ValidatorRegex.PositiveInteger);
    
    
return num.test(obj);
    }
});

//是否是正小数
Validator.method('IsPositiveDecimal'function(obj) {
    
var num=new RegExp(ValidatorRegex.PositiveDecimal);
    
if (isNaN(obj)) {
        
return false
    }
    
else {
        
return num.test(obj);
    }    
});

//是否是邮编
Validator.method('IsZip'function(obj) {
    
var num=new RegExp(ValidatorRegex.Zip);

    
return num.test(obj);
});

//是否是QQ
Validator.method('IsQQ'function(obj) {

    
var num=new RegExp(ValidatorRegex.QQ);

    
return num.test(obj);
});


//是否是英文
Validator.method('IsEnglish'function(obj) {

    
var num=new RegExp(ValidatorRegex.Letter);

    
return num.test(obj);
});


//是否是中文
Validator.method('IsChinese'function(obj) {

    
var num=new RegExp(ValidatorRegex.Chinese);

    
return num.test(obj);
});

var ValidatorRegex = {

Email :
/^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/,//邮件

Telephone : 
/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,//电话或传真 

Mobile : 
/^((\(\d{3}\))|(\d{3}\-))?1\d{10}$/,//手机

Url : 
/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$///网址

Decimal : 
/^[-\+]?\d+(\.\d+)?$/,//小数

Integer : 
/^[-\+]?\d+$/,     //整数

PositiveDecimal : 
/^\d+(\.\d+)?$///正小数

PositiveInteger : 
/^\d+$///正整数

Zip : 
/^[1-9]\d{5}$///邮政编码

QQ : 
/^[1-9]\d{4,8}$/,//QQ

Letter : 
/^[A-Za-z]+$/,     //英文字母

Chinese : 
/^[\u0391-\uFFE5]+$/ //中文
}



return new Validator();

})();

 

 方法说明:

 

方法说明:

验证是否邮件:<

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2