正則表達式
回答
您在小時有一個錯誤。你的字符串是兩位數的小時,但正則表達式是一位數字。
preg_match("/([0][1-9]|[12][0-9]|3[0-1])\/([0][1-9]|1[0-2])\/(\d{4}) (0[0-9]|1[0-2]):([0-5][0-9]) (am|pm)/", $time);
已經做了這個改變..但仍然沒有得到接受的字符串.. –
@harshagarwal奇怪..你可以發佈字符串?我的意思是完整的字符串,因爲你的模式表明,條紋只能有時間價值,沒有別的。如果你在開始時刪除^和在結束時刪除$,它可以處理一個字符串,例如:'我在下班時間開車時間爲11/06/2016 06:28',但是$和^只能匹配'11/06/2016 06:28 pm' – Andreas
thanx ...其工作.. :) –
你可以試試這個:
'^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/(19|20)\d{2} (0[0-9]|1[0-2]):[0-5][0-9] (am|pm)$'
它會隨着時間的驗證01/01/1900
之間的日期31/12/2099
(DD-MM-YYYY)以hh:與上午或下午mm格式。
或者使用下面的一個驗證所有年除了0000
:
'^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/\d{4}(?<!0000) (0[0-9]|1[0-2]):[0-5][0-9] (am|pm)$'
* *是什麼問題?尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包括所需的行爲,*特定的問題或錯誤*和*在問題本身中重現它*所需的最短代碼* *。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建一個最小,完整和可驗證的示例。](http://stackoverflow.com/help/mcve) –
一個瘋狂的猜測,因爲你不給我們太多的工作就是你得到錯誤'(不是一個有效的修飾符「,是正確的?這是因爲之前的char是一個修飾符並且它不會被轉義,所以在這兩個/模式中都使它們成爲\ /並且看看它是否有效 – Andreas
爲了清晰:'$ regexp =「/ ^([0] [1-9] | [12] [0-9] | 3 [0-1])\ /([0] [1-9] | 1 [0- ([0-9] | 1 [0-2]):([0-5] [0-9])(am | pm)$ /「;' – Andreas