1

我在python中有这段代码。实际上我想使用 python 在服务器端验证密码字段。我希望密码本质上是字母数字,这就是我到目前为止所做的

def valid():
    num = "[a-zA-Z0-9]"
    pwd = "asdf67AA"
    match  = re.match(pwd, num)
    if match:
        return True
    else:
        return False

它总是返回 false 。它没有达到 IF 条件。我错过了什么

4

5 回答 5

2

你颠倒了 match 的论点

re.match(pattern, string, flags=0)

它应该是

match  = re.match(num, pwd)
于 2012-10-31T07:50:01.217 回答
1

您可以执行此操作来确定字符串是否为字母数字

pwd = "asdf67AA"
if pwd.isalnum():
    # password is alpha numeric
else:
    # password is not alpha numeric
于 2012-10-31T07:52:51.003 回答
0

您错过了将参数放在方法 reverse it 中。

它会起作用的。

但是,如果您在字符串中设置符号,这也匹配。所以,我建议你应用这个东西:

密码 =“test5456”

pwd.isalnum():

此方法仅适用于您的字符串包含字符串或数字的情况。

如果您强烈希望您的密码同时包含数字和字符串,那么此代码将为您提供帮助。

 test = "anil13@@"
 new = tuple(test)
 data = list(new)
 is_symb =False
 is_digit = False
 is_alpha = False

 for d in data :
    if d.isdigit() :
       is_digit = True
    if d.isalpha():
       is_alpha = True
    if not d.isdigit() and not d.isalpha():
       is_symb =True
       break
if is_symb == False and is_digit == True and is_alpha == True:
   print "pwd matchd::::"
else :
   print "pwd dosen't match..."

注意:此代码非常适用于数字和符号

问候, 阿尼尔

于 2012-10-31T10:34:11.073 回答
0

这是一个非常简单的答案,最好使用正则表达式进行验证,而不是使用有线 if else 条件。

import re
password = raw_input("Enter Your password: ")
if re.match(r'[A-Za-z0-9@#$%^&+=]{6,}', password):
    print "Password is match...."
else:
    print "Password is not match...."
#6 means length of password must be atleast 6
于 2012-11-02T08:34:55.527 回答
-1

你可以通过使用 python 的 isalnum() 方法来做到这一点

pwd.isalnum()

它会告诉一个数字是否是字母数字,然后会点击 if 条件

于 2012-10-31T09:26:58.327 回答