我有时间代表这些可能性:
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 :(得分:4)
使用(?
)运算符或{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
答案 1 :(得分:3)
为什么不使用PHP的strtotime函数来完成所有工作呢?
该函数希望给出一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳(1970年1月1日00:00:00 UTC以来的秒数),相对于现在给出的时间戳,或者现在没有提供当前时间。
答案 2 :(得分:0)
也许
/[0-1]{0,1}[0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)/