我正在研究时间戳的验证。这是我的代码。
它不应该接受类似" 16:59' 99"或" 16:59' 999"作为'之后的2位数应该小于59但它实际上接受了那些无效的格式。我的正则表达式有什么问题?
O(n log n) + O(m log m) + O(least(n,m))
答案 0 :(得分:1)
答案 1 :(得分:1)
.
表示匹配任何内容,而不匹配点,因此请使用\.
来匹配文字点。
$pattern = "(^(2[0-3]|[0-1]{0,1}[0-9]):[0-5][0-9]'[0-5][0-9]\.[0-9]{1,3}$)|
(^(2[0-3]|[0-1]{0,1}[0-9]):[0-5][0-9]'[0-5][0-9]$)|
(^(2[0-3]|[0-1]{0,1}[0-9]):[0-5][0-9]\.[0-9]{1,3}$)|
(^(2[0-3]|[0-1]{0,1}[0-9]):[0-5][0-9]$)";
只有一个点,'
正在匹配。
请参阅online demo here。