javascript中的密码验证

javascript中的密码验证,javascript,passwords,Javascript,Passwords,我必须对密码进行验证。密码必须为8个字符(最小为8个字符,最大为10个字符)。并且应至少包含1个大写字符、1个小写字符、1个特殊字符和1个数字。到现在为止,我所做的都在下面 ['validate-password', 'Password must contain at least 1 uppercase character, 1 lowercase character, 1 special character and 1 number (Min. length = 8 & Max. le

我必须对密码进行验证。密码必须为8个字符(最小为8个字符,最大为10个字符)。并且应至少包含1个大写字符、1个小写字符、1个特殊字符和1个数字。到现在为止,我所做的都在下面

['validate-password', 'Password must contain at least 1 uppercase character, 1 lowercase character, 1 special character and 1 number (Min. length = 8 & Max. length = 10)', function(v) {
                var pass=v.strip(); 
                if(pass.length <11 && pass.length>7)
                    return Validation.get('IsEmpty').test(v) || /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/.test(v) || /^\s|\s$/.test(pass)

            }],
['validate-password',“密码必须至少包含1个大写字符、1个小写字符、1个特殊字符和1个数字(最小长度=8,最大长度=10)”,函数(v){
var pass=v.strip();
如果(通过长度7)
返回验证。get('IsEmpty')。测试(v)| |/(?=.*\d)(?=.[a-z])(?=.[a-z])/。测试(v)| |/^\s | \s$/。测试(通过)
}],

此代码工作正常,但当我在密码开头添加空格时,例如,password=2空格+Aaaa#7,则显示警报消息,但当我在末尾添加2个字符,如password=2空格+Aaaa#7+12,则表示接受。我想在这里删除字符串开头和结尾的空格。。。我该怎么做

如果您使用的是jQuery,那么可以使用

$.trim(str)
要修剪两侧的空白,否则可以使用:

str.replace(/^\s+|\s+$/g, '');

删除任意一侧的空白。

空白可能会\t\r\s。以下是jQuery中用于修剪空白的代码,它在任何情况下都可以正常工作

whitespace = "[\\x20\\t\\r\\n\\f]";
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" )

str.replace(rtrim , '');
使用
$.trim(str)
删除字符串开头和结尾的空格或
yourString.replace(/\s/g')
删除字符串中的所有空格。

在验证密码之前,请使用
trim
功能。见副本