我这样写,^(?=[^A-Za-z0-9]).{7,}$现在发觉第一个是非字母数字的字母,则验证通过了。比如{123456但是12{3456就木通过,不知道怎么改,谢谢

解决方案 »

  1.   

    ^(?![A-Za-z0-9]+$).{7,}$测试工具:(推荐)
    http://www.regexlab.com/zh/workshop.asp?pat=%28%3F%21%5BA-Za-z0-9%5D%2B%24%29.%7B7%2C%7D&txt=123456%7B&dlt=0
      

  2.   

    嘻嘻,sswater(光杆兵),能解释一下吗,+$是什么意思呢。谢谢
    我分是很多,结贴先
      

  3.   

    +
    是用来修饰前边的 [A-Za-z0-9] 的,表示任意次$
    是用来匹配字符串结束的[A-Za-z0-9]+$
    整体的意思就是 "直到字符串结束,都只能是字母数字"(?![A-Za-z0-9]+$)
    正向预搜索 "否定",意思是 "不能" "直到字符串结束,都只能是字母数字"
    换句话说,"直到字符串结束,中间不能只有字母数字"----------------------------------------正则表达式文档:
    http://www.regexlab.com/zh/regref.htm正则表达式调试工具:(强烈推荐)
    http://www.regexlab.com/download/?/mtracer/MTracer.zip