特殊字符: `~!@#$%^&*()+[]{}:<>?_-
1.输入的密码中必须是上面特殊字符串的子集,且连续特殊字符不能超过5个
2.输入的密码中必须有大小写字母和数字
1.变态 ……
/^[`~!\@#\$\%^&*()+\[]{}:<>\?_-]{0,5}(\w+[`~!\@#\$\%^&*()+\[]{}:<>\?_-]{0,5})+\w*$/
2.得三个正则都匹配:
/[a-z]/
/[A-Z]/
/\d/
[code="ruby"]
Regexp.escape('
~!@#$%^&*()+\[]{}:<>?_-')
~!@\#\$%\^&\*\(\)\+\\\[\]\{\}:<>\?_\-"
=> "
[/code]
to hooopo:escape 好像有问题 …… 得全部添加斜线
[code="ruby"]'`~!@#$%^&*()+[]{}:<>?_-'.each_char.inject(''){|z,c|z+'\'+c}[/code]
没问题的。我在1.8.6上测试结果:
[code="irb"]
reg_str = Regexp.escape('
~!@#$%^&*()+\[]{}:<>?_-')
~!@\#\$%\^&\*\(\)\+\\\[\]\{\}:<>\?_\-"
=> "
reg = Regexp.new(/[#{reg_str}]+/)
=> /[~!@\#\$%\^&\*\(\)\+\\\[\]\{\}:<>\?_\-]+/
~!@#$%^&*()+[]{}:<>?_-' =~ reg
'
=> 0
[/code]
果然没事 ... 昨天不知道什么地方出错了 - - 迷糊
:wink: rz