javascript正则表达式的密码

时间:2010-12-16 10:27:34

标签: javascript

我必须使用以下条件在java脚本中为密码创建正则表达式 1.密码应包含至少一个大写字母或小写字母 2.它应至少包含一个数字 它应该包含一个特殊字符(`,〜,!,@,#,$,%,^,&,*,_,+,=)

4 个答案:

答案 0 :(得分:1)

var userpw = "musSTER123#";
var invalid = false;
if(!userpw.match(/\d/) || !userpw.match(/[a-zA-Z]/) || !userpw.match(/['~!@#$%&*_+=]/))
  invalid = true;

alert('pw is valid?' + !invalid);

答案 1 :(得分:0)

使用这些正则表达式:

  • [a-zA-Z]至少一封信
  • [0-9]至少一位数
  • ['~!@#$%&*_+=^]至少提及您提到的一个特殊字符
  • [^a-zA-Z0-9]至少一个字母既不是字母也不是数字

但更好的方法是支持使用OpenID,SSL客户端证书进行单点登录,或者使浏览器在其密码存储中存储长密码的方式,甚至不向用户显示(可能是预先填写的一些密码输入)通过javascript和CSS隐藏)。

答案 2 :(得分:0)

不要求强密码。他们是傻瓜的黄金。是的,强密码优于弱密码,所有其他条件相同。但所有其他事情都很少相等。一个强密码比一个弱密码最终可能会粘贴在用户监视器上的便利贴上。

更好的防守是一个很好的锁定政策。一个系统除了禁止包含字典单词的密码,但在三次登录尝试失败后将IP地址锁定一小时后,在经过一年的强力攻击后,仍然会超过99%的安全性。此外,您可以通过增加持续失败尝试的锁定期来使其更强大。

答案 3 :(得分:0)

这些帖子很有帮助,这里有一些代码,有些人可能想在某些时候使用。这会强制用户输入大写,小写,特殊字符,最少8个字符。它也打破了它,让他们知道他们究竟做错了什么。

    <script type="text/javascript" language="javascript">
    function validate() {

        if (document.aspnetForm.PasswordValue.value == '') {
            alert('Current Password is a required field!');
            document.aspnetForm.PasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value == '') {
            alert('New Password is a required field!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value.match(/\d/) == null) {
            alert('Your new password must have a number!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value.match(/[a-z]/) == null) {
            alert('Your new password must have an Upper and lower case letter!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value.match(/[A-Z]/) == null) {
            alert('Your new password must have an Upper and lower case letter!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value.match(/['~!@#$%&*_+=]/) == null) {
            alert('Your new password must have a special character i.e.(!@#$%&*)');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value.length < 8) {
            alert('Your new password must have a minimum of 8 characters!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
        if (document.aspnetForm.NewConfirmPassword.value == '') {
            alert('Confirm New Password is a required field!');
            document.aspnetForm.NewConfirmPassword.focus()
            return false;
        }
        if (document.aspnetForm.NewPasswordValue.value != document.aspnetForm.NewConfirmPassword.value) 
        {
            alert('New password and Confirm New Password do not match!');
            document.aspnetForm.NewConfirmPassword.focus()
            return false;
        }
        if (document.aspnetForm.PasswordValue.value == document.aspnetForm.NewPasswordValue.value) {
            alert('Your current password and new password are the same!');
            document.aspnetForm.NewPasswordValue.focus()
            return false;
        }
    }
</script>