使用ereg()函数,要求年由4位数字组成,月份1-12,日1-31.
谢谢大家了。

解决方案 »

  1.   

    try catch mkdate 的错误即可....
      

  2.   


    $str = '2098-2-2';
    preg_match_all("/^((?:19|20)[\d]{2})-((?:[1-9]{1})|(?:1[1-2]{1}))-((?:[12]?[1-9]{1})|(?:3[0-1]{1}))$/",$str,$all);
    print_r($all);
      

  3.   

    什么意思呢?检查日期是否正确?用checkdate更方便!checkdate
    (PHP 3, PHP 4 , PHP 5)checkdate -- 验证一个格里高里日期
    说明
    bool checkdate ( int month, int day, int year)
    如果给出的日期有效则返回 TRUE,否则返回 FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效: 
    year 的值是从 1 到 32767 month 的值是从 1 到 12 Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。 
    参见 mktime() 和 strtotime()。 
      

  4.   

    <?php
    if (preg_match ("/\d{4}-1[0-2]|0?[1-9]-0?[1-9]|[12][0-9]|3[01]/", "2004-11-14")) {
        print "A match was found.";
    } else {
        print "A match was not found.";
    }
    ?> 
      

  5.   

    ereg("\d{4}-\d{1,2}-\d{1,2}","2012-12-12")
      

  6.   

    谢谢大家的帮助,可是我这样写了为什么还是不好用呢例如,判断是否是4位数字的时候,我是这样写的
    ereg("[0-9]{4}","2012")为什么像22222这样的5位数和5位以上的数都符合要求呢,
    而且我试了一下,例如ereg("([上])|([中])|([下])","上1111"),好像字符串里面只要有上中下,再加上其他的任何文字匹配,为什么呢,