2012-12-20 225 views
2

我试图让一个正则表达式是要做到以下几点:密码验证的正则表达式

  • 最小长度的6和最大。长度8

  • 无空白字符

  • 存在至少一个字母字符和数字字符

  • 不包含土耳其语字符(I,O,G,C,S,U)

Exp(有效通行证); tester1,TESTER1,12345a, 无效通过; *测试仪,测试仪%

我有这个表达式:^.*(?=^.{6,8}$)(?=.*[a-z])((?=.*\d)|(?=.*[A-Z])|(?=.*[\W])).*$

有人能表演和教我如何做到这一点?

+2

提醒我http://xkcd.com/936/ – user287107

+1

在一个稍微不相关的纸条,这样的密码策略可能会非常不舒服给用户。有没有什么严重的原因,你只需要这些字符和这个特定的长度? –

回答

3

这里,我们去:

^(?=.*\d)(?=.*[a-zA-Z])[^öÖşŞıİğĞ]{6,8}$ 
(?=.*\d) # must contains one digit from 0-9 
(?=.*[a-z]) # must contains one lowercase characters or one uppercase characters 
.{6,8}  # length at least 6 characters and maximum of 8  

| = OR例如:(?=.*\d)|(?=.*[A-Z]) =必须包含0-9个位数,或者必须包含一个大写字符

THX @Özkan的

[^öÖşŞıİğĞ]不允许以下字符öÖşŞıİğĞ

您可以测试它here

+2

'有人展示并教我如何做到这一点?',你做了第一个,第二个呢? –

+0

第二个是什么? – GeorgesD

+0

@GeorgesD教如何做到这一点? –