public void OnValidatePassword(object sender, ValidatePasswordEventArgs args) { System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})"); if (!r.IsMatch(args.Password)) { args.FailureInformation = new HttpException("Password must be at least 6 characters long and " + "contain at least one number and one special character."); args.Cancel = true; } }パスワードの入力チェックで
- 長さが6文字以上
- 数字が1つ以上含まれている
- 英数字以外の文字が1つ以上含まれている
(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})
という一つの正規表現でチェックしていた。 正規表現の『(?=)』は先読みと呼ばれるもので、正規表現の先読みについて解説してみる がとても参考になった。
0 件のコメント:
コメントを投稿