正则表达式密码校验必须有数字、大小写和特殊字符以及位数设定
```javascript
/^.*(?=.{8,16})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/
其中(?=.{8,16})设定密码为八到十六位,(?=.*\d)匹配一个数字字符,等价于 [0-9]。(?=.*[A-Z])匹配大写字符,(?=.*[a-z])匹配小写字符,(?=.*[!@#$%^&*? ])匹配特殊字符。
加上^和$匹配开头和结尾。就完成了设定密码必须为八到十六位的同时带有数字大小写和特殊字符。