3
我有這個MVC應用程序,我希望能夠允許用戶輸入長度爲6到255個字符的用戶名,包括我認爲合適的特殊字符。我有一個簡單的正則表達式:爲什麼MVC驗證不適用於「<" and ">」?
[RegularExpression(@"^([a-zA-Z0-9!\@#\$%\^&\(\)-_\+\.'`~/=\?\{\}\|]){6,255}$", ErrorMessageResourceType = typeof(AdminResource), ErrorMessageResourceName = "UserNameFormatError")]
驗證在一定程度上起作用。它不會讓你輸入一個短於6個字符的用戶名,並且它不會讓你輸入一個超過255的字符,它還可以讓你使用我列出的所有特殊字符。有趣的是,它也可以讓你使用「<」和「>」,我不想讓它使用,因爲然後你開始在後端得到一些錯誤,因爲安全性的東西認爲你試圖注入惡意代碼或我們。那沒有關係,驗證如何在不包含在正則表達式中的情況下允許使用它們?
我懷疑破折號可能是罪魁禍首。除了在組開始時,它是不是表示一個範圍?所以你允許''''和'_'之間的所有內容?也許? –
我想你可能是對的!我忘了逃避短跑。將測試並發表評論以讓您知道 – Skrubb
您是對的。我從來沒有注意到!一直盯着它幾個小時,嘗試不同的事情。感謝您指出了這一點! – Skrubb