登录验证时判断密码?

依依雨柔
  • 233

判断一串字符串只由大、小字母和数字组成,并且至少要包含其中的两种,且由数字开头,如何写代码?

回复
阅读 2.1k
3 个回答

使用正则表达式 match 一下

起风了
  • 4.1k
# 判断一串字符串只由大、小字母和数字组成(isalnum),
# 并且至少要包含其中的两种(not s1.isdigit()) -> 首字母为数字,只要该字符串不全是数字就可以了,
# 且由数字开头(s[0].isdigit())
s0 = '[email protected]' # FALSE
s1 = '12ASD'        # TRUE
s2 = '12asd'        # TRUE
s3 = '1212312312'   # FALSE

print(s0.isalnum() and s0[0].isdigit() and not s0.isdigit())
print(s1.isalnum() and s1[0].isdigit() and not s1.isdigit())
print(s2.isalnum() and s2[0].isdigit() and not s2.isdigit())
print(s3.isalnum() and s3[0].isdigit() and not s3.isdigit())

用正则表达式吧

强:字母+数字+特殊字符

^(?![a-zA-z]+$)(?!\d+$)(?![[email protected]#$%^&*]+$)(?![a-zA-z\d]+$)(?![[email protected]#$%^&*]+$)(?![\[email protected]#$%^&*]+$)[a-zA-Z\[email protected]#$%^&*]+$

中:字母+数字,字母+特殊字符,数字+特殊字符

^(?![a-zA-z]+$)(?!\d+$)(?![[email protected]#$%^&*]+$)[a-zA-Z\[email protected]#$%^&*]+$

弱:纯数字,纯字母,纯特殊字符

^(?:\d+|[a-zA-Z]+|[[email protected]#$%^&*]+)$

参考:http://blog.csdn.net/x_i_y_u_...

宣传栏