我正在寻找具有以下规则的正则表达式:
我已经提出了以下内容,除了防止空格之外,它还可以做任何事情:
^(?=.*\d)(?=.*[a-zA-Z~!@\$\^\-_\+\|\.\?\u005b\u005d\u00e1\u00c1\u00e9\u00c9\u00ed\u00cd\u00f3\u00d3\u00fa\u00da\u00f1\u00d1\u00fc\u00dc\u00bf\u00a1\u2014]).{6,32}$
如何修改标记空格? 任何帮助将不胜感激。
答案 0 :(得分:0)
你可以尝试这样的事情:
^(?=[A-Za-z0-9])(?=[a-zA-Z~!@\$\^-_+\|.\?\u005b\u005d\u00e1\u00c1\u00e9\u00c9\u00ed\u00cd\u00f3\u00d3\u00fa\u00da\u00f1\u00d1\u00fc\u00dc\u00bf\u00a1\u2014]){6,32}$
在您当前的正则表达式中,您似乎有一个外卡匹配器(.
),它应匹配您不想匹配的空间。通配符运算符显示在3个位置^(?=.\d)
,(?=.[a
和14]).
。因此,你的正则表达式应该允许最多3个空白字符,一个在初始数字之前,在最初的数字集之后,最后一个。
答案 1 :(得分:0)
使用否定前瞻来否定空格字符。
(?!^.*\s)
^.*(?![^!-~\u005b\u005d\u00e1\u00c1\u00e9\u00c9\u00ed\u00cd\u00f3\u00d3\u00fa\u00da\u00f1\u00d1\u00fc\u00dc\u00bf\u00a1\u2014])(?!^.*\s)(?=^.*\d)(?=^.*[a-zA-Z]).*$
我对正则表达式进行了修改,因此它更符合典型的密码验证技术。
具体来说,我改变了你的正向前瞻,以便他们以^.*
开头,这样他们就可以验证整个字符串,而不仅仅是当前位置右边的字符串。
我也将它们分开,以便每一个都经过验证,而不是单个字符类,它可以满足多个要求,但可以通过单个字符来满足。
作为最后一点,我将字符类中的ASCII更改为以下范围:!-~
,其中包含除空格外的所有字母,数字和符号。