0

我正在尝试制作一个正则表达式来检查一个字段并确保它包含(特殊字符或数字),包括所有其他字符。我没有正确地做到这一点。

我一直在使用一些正则表达式网站,如http://www.gskinner.com/RegExr/来给我一些帮助并确保我得到正确的东西,但我不是。

我得到的最接近的是:

(?!^[0-9]*$)(?!^[a-zA-Z!@#$%^&*()_+=<>?]*$)^([a-zA-Z!@#$%^&*()_+=<>?0-9]{6,15})$

尽管要求其中有一个数字,但它会检查所有内容。但我需要它必须有一个数字或特殊字符。

4

2 回答 2

1

这需要一个数字和一个特殊字符:

[^\s\w].*\d|\d.*[^\s\w]

这需要一个数字或一个特殊字符:

\d|[^\s\w]

管道字符“|” 表示或。

如果同时存在特殊字符和数字,则此行匹配整行:

.*(:?[^\s\w].*\d|\d.*[^\s\w]).*

如果有特殊字符或数字,则此行匹配整行:

.*(?:\d|[^\s\w]).*
于 2012-08-07T20:32:30.003 回答
0

特殊字符或数字?好吧,那[^A-Za-z_ ]可能就足够了。

编辑:

因此,如果您尝试进行密码验证,那么这非常简单,具有积极的前瞻性。无耻从:http ://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

(           # Start of group
  (?=.*\d)      #   must contains one digit from 0-9
  (?=.*[a-z])       #   must contains one lowercase characters
  (?=.*[A-Z])       #   must contains one uppercase characters
  (?=.*[@#$%])      #   must contains one special symbols in the list "@#$%"
              .     #     match anything with previous condition checking
                {6,20}  #        length at least 6 characters and maximum of 20 
)
于 2012-08-07T20:20:04.270 回答