2017-08-07 70 views
1

直到現在,當用戶在我的應用程序中註冊時,他無法創建具有特殊字符的用戶名。我不喜歡這樣寫道:篩選一些特殊字符

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

但現在我希望能夠像的特殊字符列表:! - _ $

什麼是正確的做法?

+0

你想要它們被替換或只是刪除? – Veltro

+0

我只想檢測它們。如果特殊字符不在列表中,它將返回一條消息,告訴該字符不受支持。 – GrandGTO

回答

1

這段代碼將打印壞字符

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

非常感謝,這就是我想要的! – GrandGTO

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 
+0

我不認爲它會起作用。例如,我允許字符「$」。如果我輸入用戶名「MyUsername_ $」,如何檢測「_」是一個不好的字符,$是正常的。 – GrandGTO

+0

$是不正常的,因爲你之前寫過,這段代碼正在工作,試試吧。 @GrandGTO – Veltro

+0

在你的例子中,我把壞字符放在列表/變量上。但我想把正確的性格放在一個列表中。 – GrandGTO

0

一個無效字符不是字母數字and它不是在允許的特殊字符。

name = '[email protected]' 
valid_chars = set('! - _ $') 

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