javaScript通用数据类型校验函数(4)

来源:asp之家 时间:2009-07-06 12:49:00 

 判断是否为邮政编码

function f_check_zipcode(obj)   
{   
    if(!f_check_number(obj))   
        return false;   
    if(obj.value.length!=6)   
    {   
        f_alert(obj,"邮政编码长度必须是6位");   
        return false;   
    }   
    return true;   
}

用户ID,可以为数字、字母、下划线的组合,
第一个字符不能为数字,且总长度不能超过20。

function f_check_userID(obj)   
{   
    var userID = obj.value;   
    if(userID.length > 20)   
    {   
        f_alert(obj,"ID长度不能大于20");   
        return false;   
    }   
  
    if(!isNaN(userID.charAt(0)))   
    {   
        f_alert(obj,"ID第一个字符不能为数字");   
        return false;   
    }   
    if(!/^\w{1,20}$/.test(userID))    
    {   
        f_alert(obj,"ID只能由数字、字母、下划线组合而成");   
        return false;   
    }   
    return true;   
}

   功能:验证身份证号码是否有效
提示信息:未输入或输入身份证号不正确!
使用:f_check_IDno(obj)
返回:bool

 

function f_check_IDno(obj)   
{    
    var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};   
    
    var iSum = 0;   
    var info = "";   
    var strIDno = obj.value;   
    var idCardLength = strIDno.length;     
    if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno))    
    {   
        f_alert(obj,"非法身份证号");   
        return false;   
    }   
    
    //在后面的运算中x相当于数字10,所以转换成a   
    strIDno = strIDno.replace(/x$/i,"a");   
  
    if(aCity[parseInt(strIDno.substr(0,2))]==null)   
    {   
        f_alert(obj,"非法地区");   
        return false;   
    }   
       
    if (idCardLength==18)   
    {   
        sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2));   
        var d = new Date(sBirthday.replace(/-/g,"/"))   
        if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))   
        {          
            f_alert(obj,"非法生日");   
            return false;   
        }   
  
        for(var i = 17;i>=0;i --)   
            iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11);   
  
        if(iSum%11!=1)   
        {   
            f_alert(obj,"非法身份证号");   
            return false;   
        }   
    }   
    else if (idCardLength==15)   
    {   
        sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2));   
        var d = new Date(sBirthday.replace(/-/g,"/"))   
        var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();      
        if(sBirthday != dd)   
        {   
            f_alert(obj,"非法生日");   
            return false;   
        }   
    }   
    return true;    
}

标签:函数,JavaScript,验证
0
投稿

猜你喜欢

  • 画好线框图的20个步骤

    2009-09-01 19:46:00
  • go语言分布式id生成器及分布式锁介绍

    2024-01-30 21:20:43
  • 基于Vue渲染与插件的加载顺序的问题详解

    2024-05-09 15:10:29
  • Python正则表达式中flags参数的实例详解

    2021-09-23 10:43:41
  • python 装饰器重要在哪

    2023-12-30 12:13:29
  • Sql Server中的视图介绍

    2024-01-14 14:31:22
  • 基于Python编写微信清理工具的示例代码

    2022-03-04 09:02:54
  • windows下python安装pip方法详解

    2023-12-13 19:43:16
  • opencv-python 开发环境的安装、配置教程详解

    2022-04-25 22:14:58
  • Python使用百度翻译开发平台实现英文翻译为中文功能示例

    2021-10-22 14:56:27
  • 详解django中视图函数的FBV和CBV

    2022-05-26 01:11:10
  • idea连接SQL Server数据库的详细图文教程

    2024-01-14 05:32:54
  • Python语法学习之正则表达式的量词汇总

    2023-07-20 03:08:59
  • 对Python强大的可变参数传递机制详解

    2021-06-23 02:54:09
  • python3使用pandas获取股票数据的方法

    2023-01-04 15:01:15
  • Java基础之JDBC的数据库连接与基本操作

    2024-01-13 12:35:04
  • Pandas DataFrame 取一行数据会得到Series的方法

    2023-08-28 04:25:13
  • 给Django Admin添加验证码和多次登录尝试限制的实现

    2022-10-17 01:09:34
  • Python-openCV读RGB通道图实例

    2023-01-26 12:28:26
  • php提示Failed to write session data错误的解决方法

    2023-11-21 21:02:39
  • asp之家 网络编程 m.aspxhome.com