我有时间代表这些可能性:
7:15:00 AM
07:15:00 AM
7:15:00 PM
07:15:00 PM
如何调整下面的正则表达式以使上述适合?我需要添加的规则是前面可选的 0 和可选的空格 AM 或空格 PM。
/[0-2][0-9]:[0-5][0-9]:[0-5][0-9]/
使用 ( ?
) 运算符或 {0,1}
/[0-2]?[0-9]:[0-5]?[0-9]:[0-5]?[0-9]\s?[AM|PM]/i
更好的方法:检查strtotime()
我认为这是更好的一个,因为我认为[0-2]?[0-9]
不是有效的正则表达式
/1[012]|0?[1-9]:[0-5]?[0-9]:[0-5]?[0-9]\s?[AM|PM]/i
为什么不直接使用 PHP 的strtotime函数来完成所有工作呢?
该函数期望得到一个包含英文日期格式的字符串,并将尝试将该格式解析为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数),相对于现在给出的时间戳,或如果没有提供现在的当前时间。
也许
/[0-1]{0,1}[0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)/