2017-08-07 11 views
1

これまで、ユーザが自分のアプリケーションに登録しているときに、特殊文字でユーザ名を作成することはできません。私はこのようにそれを行う:いくつかの特殊文字をフィルタリングする

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

しかし、今私のような特殊文字のリストを有効にする:! - _ $を。

これを行う正しい方法は何ですか?

+0

あなたはそれらを置き換えたい、または単に削除したいですか? – Veltro

+0

私はそれらを検出したいだけです。特殊文字がリストにない場合は、この文字がサポートされていないことを示すメッセージが返されます。 – GrandGTO

答えて

1

このコードは、無効な文字は、それが許さ特殊文字ではありませんand英数字ではない不正な文字

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

を印刷します。

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