在我看來,我爲用戶提供的任何輸入方法都需要一些詳細的審查,但我從未見過有人實施過所有輸入必須通過的單一驗證集。每個字段的基本驗證
在用戶輸入的每個字段中是否存在一些基本驗證?爲了簡單起見,我們只談談文本框。
您是否添加了任何代碼來監視控制字符?
字符串長度限制?
在我看來,我爲用戶提供的任何輸入方法都需要一些詳細的審查,但我從未見過有人實施過所有輸入必須通過的單一驗證集。每個字段的基本驗證
在用戶輸入的每個字段中是否存在一些基本驗證?爲了簡單起見,我們只談談文本框。
您是否添加了任何代碼來監視控制字符?
字符串長度限制?
在用戶輸入的每個字段中是否存在一些基本驗證?
一般來說,沒有。但是,某些特定的應用可能在該應用內具有該要求,例如應用中的所有文本字段限制爲255個字符。或者一個應用程序可能會有某些種類共享公共驗證要求的輸入。例如,你可能會將你的文本投入只是幾個類型:自由形式,貨幣,日期等
,你可以在這些情況下做的就是實現自定義控件或用戶什麼控制那套具有輸入本身的每種輸入的驗證邏輯。然後,只需在表單上放置正確的控件,驗證邏輯就會遵循它。
TextBox.MaxLength,TextBox.Text.Contains,aspValidators等
我不知道,如果這是響應你要找的那種,是你承擔了更多的最佳做法事代碼示例?
只是一個最佳實踐就足夠了,但代碼示例將是不可思議的。 – JoshBaltzell 2010-01-07 21:49:12
每個輸入都是不同的。這取決於你的程序。有時候字段是可選的,有時它們是必需的。如果可選字段填充某些字段是必需的。這一切都取決於你的應用程序....
我會簡單地使用正則表達式
例如(在Perl的正則表達式的例子)
/^[a-zA-Z]+$/ # non-blank, a to z only
/^[a-zA-Z]{3,10}$/ # a to z, 3 to 10 characters long
/^(\d-){2}-\d$/ # dd-mm-yy or similar format
我會建議不要這種方法。大多數人在沒有必要的時候都會執行正則表達式,並且有更簡單的方法來執行日期檢查等操作。 IE創建一個日曆小部件。該長度可以通過對字符串對象進行簡單的文本長度調用來處理。只需0.02美分 – Woot4Moo 2010-01-07 21:31:07
加上asp.net RegularExpressionValidator將始終驗證空白字段是否正確,即使RegEx需要多個字符。 – ristonj 2010-01-07 21:39:20
我知道通常有替代解決方案,但正則表達式通常是對輸入執行通用檢查的好方法(請注意,雖然這些只是簡單的示例 - 我不會建議在任何示例上實際使用簡單的示例)。 – ternaryOperator 2010-01-07 22:30:33
一個的CustomValidator可以很容易地進行編程,以驗證頁面的每一個領域,所以如果有一個總體的驗證要求,這將是我會用什麼。
不幸的是,在我的經驗中,驗證永遠不會是「一刀切」。一般而言,驗證直接反映了您的業務邏輯,並且每個領域都將帶來獨特的業務需求。
我現在就給它一些時間,但聽起來像一般的觀點是,沒有一個適合所有使用的驗證器。儘管如此,我很想聽到更多意見。 – JoshBaltzell 2010-01-07 21:51:33