我想檢查一個字段是否是一個有效的時間值(只是秒)。所以我想接受從0到59的數字。我拿出這個:對00-59(秒)之間的數字的javascript正則表達式
[0-5][0-9]?
幾乎沒有工作。但不包括數字7-8-9 ......它的工作原理,如果用戶的數字07,但我不希望強制用戶數字的第0位。所以,我想是這樣的:
([0-5][0-9]? | [0-9])
但這不起作用,併產生了太多遞歸調用的錯誤。
有什麼想法?
我想檢查一個字段是否是一個有效的時間值(只是秒)。所以我想接受從0到59的數字。我拿出這個:對00-59(秒)之間的數字的javascript正則表達式
[0-5][0-9]?
幾乎沒有工作。但不包括數字7-8-9 ......它的工作原理,如果用戶的數字07,但我不希望強制用戶數字的第0位。所以,我想是這樣的:
([0-5][0-9]? | [0-9])
但這不起作用,併產生了太多遞歸調用的錯誤。
有什麼想法?
在你的第二個正則表達式,你需要從第一部分除去?
,使的它[1-5]
代替[0-5]
:
[0-9]|[1-5][0-9]
如果你想有足夠的靈活性,允許雙方7
和07
,然後使用[0-5]
:
[0-9]|[0-5][0-9]
然後,簡化了上述正則表達式,你可以使用:
[0-5]?[0-9] // ? makes [0-5] part optional
不會[0-9] | [0-5] [0-9]更好。 – 2013-02-12 19:26:13
@Armin。我以爲OP不想進入'07'。 – 2013-02-12 19:26:47
@Mercurybullet。補充說。 – 2013-02-12 19:29:05
這應該是足夠了:[0-5]?\d
但是,如果要強制執行兩個數字(即。 01
,02
......),你應該只使用[0-5]\d
如果你想十位數可選,而不是單元的位置,放置?
有:
[0-5]?[0-9]
十年?你什麼意思? – 2013-02-12 19:30:01
@Juan,從技術上講,[十年](http://www.thefreedictionary.com/decade)可以表示「十人小組」,不僅是「十年的時期」(這也是法語的翻譯* ,意思是「十人小組」)。在這種情況下,Bergi指的是十秒鐘的小組。 – 2013-02-12 19:36:01
@Juan:右邊第二位數字。可能這是一個錯誤或不尋常的翻譯,不知道是否有更好的表達 – Bergi 2013-02-12 19:36:51
如果你想在0是可選,請將?
改爲在[0-5]
之後。
[0-5]?[0-9]
應該這樣做。
無法把6,7,8,9在這種情況下。 – 2017-08-01 20:16:07
它是否必須是一個正則表達式? – PeeHaa 2013-02-12 19:25:22
不要以爲你需要?在第二個表達式中,因爲您已經在第二個可選部分中涵蓋了這種情況。 – 2013-02-12 19:26:06
老實說,我只是將這個值解析爲一個基數爲10的數字,並將它與'0'和'59'進行比較。一個正則表達式在這裏看起來過分了。 – 2013-02-12 19:26:13