过滤一些特殊字符

时间:2017-08-07 17:22:04

标签: python string

到目前为止,当用户在我的应用中注册时,他无法创建具有特殊字符的用户名。我是这样做的:

if username.isalnum() is False:
....

但现在我想启用一个特殊字符列表,例如:! - _ $

这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

如果使用了错误的字符,此代码将发出警告并将其删除。

a = "username$"
b = "! - _ $" #can be a string, list or set

#alert if bad chars
for c in b:
    if c in a:
        print c + " is a bad character"
        break

#short alert code
if any((c in a) for c in b): print c + " is a bad character"

#remove bad chars
for c in b: a=a.replace(c,"")

print a

答案 1 :(得分:0)

此代码将打印错误字符

username = 'test343!_$&^ffg'
character_allowed = ['!', '_', '-', '$']
for letter in username:
    if not (letter.isalpha() or letter.isdigit() or letter in character_allowed):
      print letter

答案 2 :(得分:0)

无效的字符不是字母数字and,它不在允许的特殊字符中。

name = 'GrandGTO$@'
valid_chars = set('! - _ $')

for char in name:
    if not char.isalnum() and char not in valid_chars:
        print(char, 'is invalid.')
        break