2013-12-11 153 views
0

我必须对密码进行验证。密码必须为8个字符(最小= 8个字符,最大= 10个字符)。并应至少包含1个大写字符,1个小写字符,1个特殊字符和1个数字。直到现在我所做的是以下...在javascript中验证密码

['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) 

      }], 

此代码工作正常,但是当我在密码开始时添加空格,例如password = 2 whitespaces + Aaaa#7然后它显示警告消息,但是当我在末尾添加2个字符时,如password = 2 whitespaces + Aaaa#7 + 12,则表明它正在接受。我想要的是在字符串的开始和结尾删除空格......我该怎么做?

+3

在验证密码之前使用'trim'功能。请参阅http://stackoverflow.com/questions/498970/how-do-i-trim-a-string-in-javascript – Floris

+1

重复的[如何修剪JavaScript中的字符串?](http://stackoverflow.com/questions/498970/javascript-how-do-i-trim -a-string-in-javascript) –

回答

1

如果你使用jQuery,您可以使用

$.trim(str) 

修剪两侧的空白,否则,你可以使用:

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

到两侧删除空格。

+0

感谢哥们......我用不同的逻辑解决了它 –

0

空白可能容器\ t,\ r,\ s.Here是在jQuery中修剪空白的代码,它在任何情况下都能正常工作。

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

str.replace(rtrim , ''); 
1

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

+0

感谢哥们......我用不同的逻辑解决了它...... –

+0

总是欢迎! – HICURIN