javascript 通用验证函数库(电话,邮箱,手机,数字)

网页特效 通用验证函数库(电话,邮箱,手机,数字)
这个验证库是我们常用的 电话,邮箱,手机,数字 QQ, 字母,中文,英文等验证函数。

/*
@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]>31) return 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}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/,//电话或传真

Mobile : /^(((d{3}))|(d{3}-))?1d{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();

})();
 

 方法说明:

 

方法说明:
验证是否邮件:

  $v.IsEmail(obj); 

验证是否电话:

  $v.IsTelephone(obj); 

验证是否手机号码:

  $v.IsMobile(obj); 

验证是否网址:

  $v.IsUrl(obj); 

验证是否身份证:

  $v.IsIdCard(obj); 

验证是否日期:

  $v.IsDate(obj); 

验证是否为空:

  $v.IsNullOrEmpty(obj); 

验证是否是整数:

  $v.IsInteger(obj); 

验证是否是小数:

  $v.IsDecimal(obj); 

验证是否是正整数:

  $v.IsPositiveInteger(obj); 

验证是否是正小数:

  $v.IsPositiveDecimal(obj); 

验证是否是邮编:

  $v.IsZip(obj); 

验证是否是QQ:

  $v.IsQQ(obj); 

验证是否是英文:

  $v.IsEnglish(obj); 

是否是中文:

  $v.IsChinese(obj); 

时间: 2024-09-20 07:09:55

javascript 通用验证函数库(电话,邮箱,手机,数字)的相关文章

JavaScript常用验证函数实例汇总_javascript技巧

本文实例汇总了JavaScript常用验证函数.分享给大家供大家参考.具体汇总如下: 一.字符串类验证 1. 长度限制 复制代码 代码如下: <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> <form name=a onsubmit=&

JavaScript常用验证函数实例汇总

 一.字符串类验证 1. 长度限制   代码如下: <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> <form name=a onsubmit="return test()"> <textarea nam

javascript 常用验证函数总结_javascript技巧

/** * 2010-7-13 * 贺 臣 * 情 缘 * js各种表单数据验证 */ /**************************************************************************************/ /*************************************数字的验证*****************************************/ /******************************

javascript 常用验证函数

javascript|函数 一.验证类1.数字验证内  1.1 整数  1.2 大于0的整数 (用于传来的ID的验证)  1.3 负整数的验证  1.4 整数不能大于iMax  1.5 整数不能小于iMin2.时间类  2.1 短时间,形如 (13:04:06)  2.2 短日期,形如 (2003-12-05)  2.3 长时间,形如 (2003-12-05 13:04:06)  2.4 只有年和月.形如(2003-05,或者2003-5)  2.5 只有小时和分钟,形如(12:03)3.表单类

javascript form 验证函数 弹出对话框形式_javascript技巧

复制代码 代码如下: /** * 得到中英文字符长 * @param {} str * @return {} */ function LengthB(str){ var p1 = new RegExp('%u..', 'g') var p2 = new RegExp('%.', 'g') return escape(str).replace(p1, '').replace(p2, '').length } /** * 过滤所有空格字符 * @param {Object} str */ funct

JavaScript 正则表达式验证函数代码_正则表达式

利用正则表达式判断是否是0-9的阿拉伯数字 复制代码 代码如下: function regIsDigit(fData) { var reg = new RegExp("^[0-9]$"); return (reg.test(fData)); } 利用这则表达式获取字符串的长度 复制代码 代码如下: function regDataLength(fData) { var valLength = fData.length; var reg = new RegExp("^[\u03

JavaScript 正则表达式验证函数代码

利用正则表达式判断是否是0-9的阿拉伯数字 复制代码 代码如下: function regIsDigit(fData) { var reg = new RegExp("^[0-9]$"); return (reg.test(fData)); } 利用这则表达式获取字符串的长度 复制代码 代码如下: function regDataLength(fData) { var valLength = fData.length; var reg = new RegExp("^[\u03

javascript使用isNaN()函数判断变量是否为数字_javascript技巧

javascript中判断变量是否为数字的方法,这里主要介绍javascript里的 isNaN() 函数. 功能: isNaN() 函数用于检查其参数是否是非数字值. 语法: isNaN(x) x 必需.要检测的值. 返回值: 如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true.如果 x 是其他值,则返回 false. 说明: isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果). 如果把 NaN 与任何值(

一个通用验证javascript函数

很久以前写的一个通用验证函数,大家不要笑啊,许多东西没有完善比如日期验证.<SCRIPT LANGUAGE="JavaScript" src="valid.js"></SCRIPT><TABLE cellspacing=0 cellpadding=0 border=0 align=center><FORM METHOD=POST ACTION="bbs_new.asp" name="form1&