我找到了一个仅接受 24 小时时间的工作表达式,但我的问题是它会接受之前和之后的内容,例如字符
if (preg_match_all("~((2[0-3]|[01][1-9]|10):([0-5][0-9]))~", $time)) {
pha*_*ers 10
如果您只想接受仅包含 HH:MM 模式的行,那么您可以使用行首和行尾锚点,如下所示:
'/^([01][0-9]|2[0-3]):([0-5][0-9])$/'
Run Code Online (Sandbox Code Playgroud)
如果您想查找与 HH:MM 匹配的单词,则可以使用单词边界字符,如下所示:
'/\b([01][0-9]|2[0-3]):([0-5][0-9])\b/'
Run Code Online (Sandbox Code Playgroud)
第一个将匹配“04:20”,但不匹配“04:20am”或“04:20am”。第二个将匹配“04:20”或“04:20 am”的“04:20”部分,但不匹配“04:20am”。