日期:2014-05-16  浏览次数:20467 次

正则表达式 包含字母数字特殊符号
如题,要求一正则表达式,验证输入的内容同时包含字母数字特殊符号,且长度在10-20,现在网上找了一个(?![^a-zA-Z0-9]+$)(?![^a-zA-Z/D]+$)(?![^0-9/D]+$).{10,20}$


这个正则表达式有点错误,就是输入字母和数字如(123456aaaa)这样是正确的,也就是说没有特殊符,这不是我要的效果,请各位友友帮忙改写一下,输入内容一定要同时包含字母、数字、特殊符三者

------解决方案--------------------
...输入内容一定要同时包含字母、数字、特殊符三者,没有先后顺序吧?特殊字符指的是哪些?
------解决方案--------------------
.{10,20}
------解决方案--------------------
/(?=.*[\d]+)(?=.*[a-zA-Z]+)(?=.*[^a-zA-Z0-9]+).{10,20}/

------解决方案--------------------
if(/^.{10,20}$/.test(str) && /[a-z]/i.test(str) && /\d/.test(str) && /[^a-z\d]/i.test(str))

------解决方案--------------------
引用:
Quote: 引用:

...输入内容一定要同时包含字母、数字、特殊符三者,没有先后顺序吧?特殊字符指的是哪些?

嗯,没有顺序要求,特殊符用/D匹配应该就行了


“特殊符用/D匹配应该就行了”
你的这个需求比较模糊(或者你还没理清),既然用特殊符用/D(实为\D),那已经\D即表示非数字的任何字符,即[^0-9],在结合你前面的要求:包含字母、数字、特殊符,综合起来就是包含任何字符,也即编程对字符没有要求,仅仅长度限制为10--20的范围,这个是你需要的的吗(我的感觉这不是你需要)?如果是那正则即 .{10,20} 即可,也即4L说的