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

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

判断字符串是否符合指定的正则表达式 

function f_check_formatStr(obj)   
{   
    var str = obj.value;   
    var dtype = obj.eos_datatype;   
    var regu = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));    //指定的正则表达式   
    var re = new RegExp(regu);   
    if(re.test(str))   
        return true;   
    f_alert(obj , "不符合指定的正则表达式要求");   
    return false;      
}

断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
提示信息:未输入或输入的日期格式错误!
使用:f_check_date(obj)
返回:bool


function f_check_date(obj)   
{   
    var date = Trim(obj.value);   
    var dtype = obj.eos_datatype;   
    var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
    var year,month,day,datePat,matchArray;   
  
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
        datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/;   
    else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))   
        datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/;   
    else if(format=="yyyyMMdd")   
        datePat = /^(\d{4})(\d{2})(\d{2})$/;   
    else  
    {   
        f_alert(obj,"日期格式不对");   
        return false;   
    }   
    matchArray = date.match(datePat);   
    if(matchArray == null)    
    {   
        f_alert(obj,"日期长度不对,或日期中有非数字符号");   
        return false;   
    }   
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
    {   
        year = matchArray[1];   
        month = matchArray[3];   
        day = matchArray[4];   
    } else  
    {   
        year = matchArray[1];   
        month = matchArray[2];   
        day = matchArray[3];   
    }   
    if (month < 1 || month > 12)   
    {                
        f_alert(obj,"月份应该为1到12的整数");   
        return false;   
    }   
    if (day < 1 || day > 31)   
    {   
        f_alert(obj,"每个月的天数应该为1到31的整数");   
        return false;   
    }        
    if ((month==4 || month==6 || month==9 || month==11) && day==31)   
    {   
        f_alert(obj,"该月不存在31号");   
        return false;   
    }        
    if (month==2)   
    {   
        var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
        if (day>29)   
        {                  
            f_alert(obj,"2月最多有29天");   
            return false;   
        }   
        if ((day==29) && (!isleap))   
        {                  
            f_alert(obj,"闰年2月才有29天");   
            return false;   
        }   
    }   
    return true;   
}

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

猜你喜欢

  • python 遍历可迭代对象的实现方法

    2021-03-02 07:13:07
  • MSSQL 2005 LOG备份webshell的方法

    2024-01-16 16:43:24
  • Python学习笔记之if语句的使用示例

    2021-03-09 09:16:39
  • vue实现下拉加载其实没那么复杂

    2024-05-29 22:29:53
  • Python中的集合介绍

    2022-09-10 03:49:52
  • DreamweaverMX 2004打造细线表格

    2008-10-01 09:39:00
  • 关于vue.js中实现方法内某些代码延时执行

    2024-05-21 10:30:46
  • python随机生成大小写字母数字混合密码(仅20行代码)

    2021-04-03 23:28:47
  • 解析xml字符串的函数

    2008-06-10 12:37:00
  • 一个Access数据库数据传递的实例方法

    2008-11-28 16:24:00
  • Python打开文件、文件读写操作、with方式、文件常用函数实例分析

    2023-07-01 16:31:08
  • python实现的系统实用log类实例

    2022-08-02 18:50:57
  • PHP使用GIFEncoder类生成gif动态滚动字幕

    2024-05-08 09:34:46
  • dl.dt.dd.ul.li.ol区别及应用

    2008-05-24 09:42:00
  • js实现点击图片自动提交action的简单方法

    2024-04-29 14:07:21
  • 汉明码编码原理及校验方法分析

    2022-10-09 06:38:13
  • 解决django中form表单设置action后无法回到原页面的问题

    2023-06-27 00:27:54
  • 解决keras backend 越跑越慢问题

    2022-05-27 17:36:58
  • 完美解决phpdoc导出文档中@package的warning及Error的错误

    2023-10-07 10:07:49
  • Python实现前向和反向自动微分的示例代码

    2022-10-25 15:52:03
  • asp之家 网络编程 m.aspxhome.com