当前位置:  编程技术>其它

判断时间的正则表达式

    来源: 互联网  发布时间:2014-10-15

    本文导语:  普通方法为,分离出小时、分钟、秒分别进行判断: public static boolean timeCheck(String time, String owner) { //检查时间字符串time是否满足格式“HH:mm:ss”或“HH:mm”,若不满足显示相应消息,并返回false if(time.equals("")){ String msg = owner+" ...

普通方法为,分离出小时、分钟、秒分别进行判断:
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”这种格式了。唉~~~~

    
 
 

您可能感兴趣的文章:

  • c#判断字符是否为中文的三种方法分享(正则表达式判断)
  • shell脚本中判断字符串匹配正则式的问题
  • javascript判断中文的正则
  • 用正则表达式来判断素数的代码
  • js正则判断非法字符限制输入
  • 求 一个正则表达式,判断是否是1-500之间的整数
  • javascript 正则 判断是否是数字的脚本
  • 用正则表达式判断字符串是汉字还是拼音的js函数代码
  • 结合JQ1.9通过js正则判断各种浏览器版本的方法
  • js判断是否有6个连续数字的字符串的正则
  • C# 正则判断一个数字的格式是否有逗号的代码
  • asp.net中利用正则表达式判断一个字符串是否为数字的代码
  • JavaScript基于正则表达式的数字判断函数
  • 一个特牛的日期时间判断正则表达式
  • c#正则判断字符是否为中文的三种方法
  • 正则表达式号码靓号类型判断代码
  • python正则表达式判断字符串是否是全部小写示例
  • JS 正则表达式判断各个浏览器代码详解
  • PHP 正则判断中文UTF-8或GBK编码的实例解析
  • replace MYSQL字符替换函数sql语句分享(正则判断)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 empty():判断Vector是否为空(返回true时为空)
  • linux->shell-> if 条件判断,关于软连接的判断!
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • shell如何判断文件是否存在,如何判断变量是否为空
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • java实现判断字符串是否全是数字的四种方法代码举例
  • 在判断自符是否等于**时,用equals(“**”),那么如果我想判断它的值是否>=2该用什么呢?
  • 我是学pb的,判断闰年的是isdate("2-28"),但在java里怎么判断呢?
  • linux 下的自解压文件是什么格式,如何判断文件是否为自解压c++或者脚本判断均可
  • mysql中如何判断当前是字符 mysql判断字段中有无汉字
  • 知道TCP/UDP的包头,如何判断其应用层协议类型,struct tcphdr和 struct udphdr结构中那个变量能判断应用层协议类型。
  • javascript 正则 判断是否是数字的脚本 iis7站长之家
  • 如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?
  • 判断图片-判断位图是否是黑白图片的方法
  • JQuery 判断某个属性是否存在hasAttr用法
  • 请问如何判断一个文件夹是否存在
  • 判断文件格式的c库函数
  • sftp命令如何判断成功与否?
  • Shell条件判断疑问?
  • java判断远程服务器上的文件是否存在的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3