Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要修改正则表达式以强制至少一个特殊符号字符_Javascript_Regex - Fatal编程技术网

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

Javascript 需要修改正则表达式以强制至少一个特殊符号字符,javascript,regex,Javascript,Regex,我使用以下正则表达式作为密码字段: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,63}$/ 我想增强它,强制至少一个数字,一个字母和一个特殊符号 我正在使用以下JavaScript代码来验证这一点: function validatePassword() { var password = document.getElementById('password

我使用以下正则表达式作为密码字段:

/^(?=.*[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;
        }
}
我该怎么做


谢谢。

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

替换

if(regexPattern.test(password))


检查字符串是否为有效密码,是否包含字母表、数字和特殊字符(如果您需要更多的加载项范围)。

(?=.*\d)
强制执行1位数字<代码>(?=.[a-zA-Z])强制1个字母<代码>(?=.[!@$%^&*()代码+])强制至少1个特殊字符<代码>[A-Za-z\d][A-Za-z\d!@$%^&*(^+]){7,63}允许以字母或数字开头的8到64个字符。现在,您的要求是什么?我的要求是所有3种字符类型[字母数字和特殊字符]必须出现在输入的值中。目前,只要输入12345678这样的密码,我就可以在数据库中插入一条记录,功能很好。
if(regexPattern.test(password) && /[a-zA-Z]/.test(password) && /[0-9]/.test(password) && /[\!\@\#\$\%\^\&\*\(\)\_\+]/.test(password) )