正则表达式修改需要强制执行至少一个特殊符号字符

时间:2016-01-11 08:54:28

标签: javascript regex

我使用以下正则表达式来输入密码字段:

/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,63}$/ 

我想增强它以强制至少一个数字,一个字母和一个特殊符号。

我使用以下JavaScript代码验证相同内容:

function validatePassword()
{

    var password = document.getElementById('password').value;
    var userID = document.getElementById('user_ID').value;
    var regexPattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,63}$/ ;

    if(regexPattern.test(password))
    {

        if(userID === password )
        {
            $('#status').text( 'User id is same as password . Please choose a more secure password');

            return false;
        }

        else if(password === reverse(userID))
        {
            $('#status').text( 'Password is reverse of user id . Please choose a more secure password');

            return false;
        }

        else
        {
        return true;
        }


        }
    else

        {
        return false;
        }
}

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

您也可以这样检查,而不是使用正则表达式。

只需替换

if(regexPattern.test(password))

if(regexPattern.test(password) && /[a-zA-Z]/.test(password) && /[0-9]/.test(password) && /[\!\@\#\$\%\^\&\*\(\)\_\+]/.test(password) )

检查字符串是否为有效密码,包含字母,数字和特殊字符(如果您想要在范围内添加更多内容)。