在我一起工作的系統,我們通過在以下條件下拋出異常驗證密碼類:在JavaScript中驗證密碼;正則表達式
public Password(string password)
: base(password)
{
// Must contain digit, special character, or uppercase character
var charArray = password.ToCharArray();
var hasDigit = charArray.Select(c => char.IsDigit(c)).Any();
var hasSpecialCharacter = charArray.Select(c => char.IsSymbol(c)).Any();
var hasUpperCase = charArray.Select(c => char.IsUpper(c)).Any();
if (!hasDigit && !hasSpecialCharacter && !hasUpperCase)
{
throw new ArgumentOutOfRangeException
("Must contain at least one digit, symbol, or upper-case letter.");
}
}
如果我打算寫hasDigit,hasSpecialCharater和hasUpperCase此相同的檢查中JavaScript,它會是什麼樣子?
JavaScript沒有這些相同的字符原型,所以我必須使用正則表達式,不是嗎?
Char.IsSymbol()是否實施不重要。 (我只是使用RedGate反射器窺視了mscorlib.dll。)如果您希望您的JavaScript和C#實現精確匹配,則最好在客戶端和服務器上使用相同的正則表達式。 – dana 2010-11-09 21:42:52