dqqy64515 2014-12-22 03:52
浏览 7
已采纳

在PHP中检查时间时,正则表达式不起作用

below is my code for checking the variable is either time or not

function isTime($time) {

    if (preg_match("/^([1-2][0-3]|[01]?[1-9]):([0-5]?[0-9]):([0-5]?[0-9])$/", $time))
            {
        return true;
            echo "<script>alert('is a time');</script>";
            }
         else {
            echo "<script>alert('not a time');</script>";
           return false;
           }
         }

and this is expression fails when value like this $time=00:08:33, and working fine with time like $time=01:08:33, please modify this expression

  • 写回答

1条回答 默认 最新

  • doushi6932 2014-12-22 03:53
    关注

    You need to change [01]?[1-9] pattern inside the first capturing group to [01]?[0-9], so that it would also matches the number 00. [1-9] Matches all the digits which falls within this range (1 to 9), and [0-9] matches all the digits from 0 to 9.

    ^([1-2][0-3]|[01]?[0-9]):([0-5]?[0-9]):([0-5]?[0-9])$
                       ^
                       |
    

    DEMO

    if (preg_match("/^([1-2][0-3]|[01]?[0-9]):([0-5]?[0-9]):([0-5]?[0-9])$/", $time))
    {
     ......
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度