[英]c# Use two validators on the same field
我在嘗試修改我自己尚未構建的表單時遇到了問題。
該表單具有日期值的asp:input字段,該字段由requiredFieldVal和rangeVal檢查。 rangeVal的類型設置為“日期”,最小值為2000-01-01:最大值為3000-01-01
現在要解決這個問題,我正在嘗試添加,以便用戶還可以輸入日期“ 20000101”的形式,換句話說,不用“-”。
我嘗試添加另一個具有Integer類型和min,max值的rangeVal,並將它們都放在同一個ValidationGroup中,但這沒有用。
我如何允許用戶在日期輸入字段中使用兩種格式(兩者之一)。
先感謝您!
當您使用多個驗證控件來驗證單個控件時,所有驗證控件都必須通過。
您可以使用正則表達式(如Kevin指出的那樣),但是要進行所需的驗證(檢查值是否為有效的DateTime
對象並在指定范圍內)將很難做到。
我建議編寫自己的CustomValidator控件,然后根據需要使用它來驗證您的值。
您可以使用正則表達式驗證器代替范圍驗證器。 我對Regex感到有些生疏,但我相信您可以在這里找到一些東西。
http://www.regular-expressions.info/
這是日期頁面的鏈接:
http://www.regular-expressions.info/dates.html
試試這個,我認為它會起作用。 如果沒有,請告訴我,我將繼續進行糾正:
((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))
另一篇文章提出了一點,該正則表達式將不會驗證某些無效的日期,如2月31日。在這種情況下,我將創建一個繼承自正則表達式驗證器的驗證類,並覆蓋EvaluateIsValid方法,並檢查它是否是實際的日期。 這允許大多數驗證在客戶端完成,而備份在服務器級別,無論如何應該進行輔助驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.