• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    判断时间的正则表达式
    普通方法为,分离出小时、分钟、秒分别进行判断:
    public static boolean timeCheck(String time, String owner) {
    //检查时间字符串time是否满足格式“HH:mm:ss”或“HH:mm”,若不满足显示相应消息,并返回false
    if(time.equals("")){
    String msg = owner+" : "+"Time is EMPTY.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    int hours, minutes, seconds = 0;
    StringTokenizer st = new StringTokenizer(time, ":");
    int tokens = st.countTokens();
    if (tokens != 3 tokens != 2) {
    String msg = owner+" : "+"Time " + time + " does not conform to the HH:mm:ss format, nor HH:mm format.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    String hourToken = st.nextToken();
    try {
    hours = Integer.parseInt(hourToken);
    } catch (NumberFormatException nfe) {
    String msg = owner+" : "+hourToken + " in " + time + " can not be parsed as hours.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    String minuteToken = st.nextToken();
    try {
    minutes = Integer.parseInt(minuteToken);
    } catch (NumberFormatException nfe) {
    String msg = owner+" : "+minuteToken + " in " + time + " can not be parsed as minutes.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    if(tokens == 3){
    String secondToken = st.nextToken();
    try {
    seconds = Integer.parseInt(secondToken);
    } catch (NumberFormatException nfe) {
    String msg = owner+" : "+secondToken + " in " + time + " can not be parsed as seconds.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    }
    if (hours 0 || hours > 23) {
    String msg = owner+" : "+"Specified hours: " + hours + ". Number of hours must be in the [0..23] range.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    if (minutes 0 || minutes > 59) {
    String msg = owner+" : "+"Specified minutes: " + minutes + ". Number of minutes must be in the [0..59] range.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    if (seconds 0 || seconds > 59) {
    String msg = owner+" : "+"Specified seconds: " + seconds + ". Number of seconds must be in the [0..59] range.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    return true;
    }
    正则方法为:
    public static boolean timeCheck(String time, String owner) {
    //检查时间字符串time是否满足格式“HH:mm:ss”,若不满足显示相应消息,并返回false
    String regex = "(([01]\\d)|(2[0-3])):[0-5]\\d(:[0-5]\\d)?";
    if(!time.matches(regex)){
    String msg = owner+" : "+"Time is INVALID.";
    MessageDialog.showError(Controller.getMainFrame(), msg);
    return false;
    }
    return true;
    }
      真是很好很强大啊!!不过上述正则“((2[0-3])|([01]\d)):[0-5]\d(:[0-5]\d)?”实现居然不能匹配“3:3:3”,郁闷!
      将正则改为“((2[0-3])|([0-1]?\d)):[0-5]?\d(:[0-5]?\d)?”倒是可以匹配“3:3:3”这种了,但“3:65:34”显然是不对的,却又匹配出两个来,晕!
      将正则改为“((2[0-3])|([0-1]?\d)):[0-5]?\d(:[0-5]?\d)”倒是可以匹配“3:3:3”,也能正确判断“3:65:34”,却又没法判断“3:34”这种格式了。唉~~~~
    上一篇:JS 正则 时间验证
    下一篇:左右若干数字验证的正则表达式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    判断时间的正则表达式 判断,时,间的,正则,表达式,