簡體   English   中英

驗證 .NET 時間格式的正則表達式

[英]A regular expression to validate .NET time format

背景

我需要在某些字段中驗證用戶輸入,這些字段定義了如何在某些視圖中顯示時間。

要求

時間格式必須以 Microsoft .NET 方式表示(如果您想了解有關框架的日期和時間格式的更多信息,請查看此 MSDN 庫文章: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

請記住,我正在尋找驗證格式而不是實際時間字符串。

例如,用戶可以輸入:

  • 高:毫米
  • 小時:毫米
  • ss
  • hh:ss
  • 毫米:ss
  • ... 等等。

事實上,它應該從可用的最短到最長的時間格式進行驗證。

另一點是我需要在客戶端使用 JavaScript 來完成 換句話說,任何給定的正則表達式都應該在瀏覽器 JavaScript 正則表達式引擎中工作。

我會很感激任何自編的,任何鏈接或粘貼的表達!

先感謝您。

注意(更新)

我不能使用 ASP.NET 驗證引擎或任何其他驗證引擎。 由於項目的要求,我需要避免這種情況。

據我了解,沒有太多選擇 - 最多 20 個。 為什么不在一個沒有太多特殊符號的大正則表達式中枚舉它們呢? 喜歡

'hh:mm|hh:mm:ss|yyyy-MM-dd hh:mm|<etc>'

您可以區分大小寫以區分M代表月和m代表分鍾,並將其設為[hH]小時,然后將其設為[:-/]以允許使用不同的分隔符以及許多其他類似的東西。 但主要思想是簡單地枚舉由|分隔的所有選項。 |之間只有少量的正則表達式語法| .

您對“有效”格式字符串的定義是什么? 只有知道了這一點,才能驗證格式字符串。

“K”也是一個有效的格式字符串

"zz" 也是一個有效的格式字符串

“e”也是一個有效的格式(它會落入“字符被復制到結果字符串不變。”的情況下)

我什至不確定什么格式實際上會導致 .NET.ToString() 拋出異常(如果這是您要避免的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM