Python

isalnum()で日本語もエラー判定できるようにする方法!Pythonの勉強

python ロゴ

練習でユーザー登録画面を海外のyoutuberを参考に見よう見まねで作成していた際にisalnum()でユーザー名のバリデーションを行っていました。

軽く動作確認すると、日本語は可能だったのですが、場合によっては日本語をfalseにすることもあるかな気になり、日本語の際にFalseにするにはどうすべきか調べた時のメモです。

isalnum()とは

isalnum()は文字列の中が全て英字または数字であるかどうかを判定する関数で、数字または英字のときはTrueを返します。

また1文字も入力がない場合はFalseを返します。

num = "1234567890"
print(num.isalnum()) # True

str = "abcdefg"
print(str.isalnum()) # True

mix = "dfghj7890"
print(mix.isalnum()) # True

simbol = "ab12&!"
print(simbol.isalnum()) # False

noStr = ""
print(noStr.isalnum()) # False

日本語もtrueを返します。

hiragana = "あいうえお"
print(hiragana.isalnum()) # True

kanji = "日本語"
print(kanji.isalnum()) # True

katakana = "ハヒフヘホ"
print(kanji.isalnum()) # True

hankaku = "カキクケコ"
print(kanji.isalnum()) # True

日本語の時にisalnum()でFalseにするには

isalnum()で日本語の時にFalse判定するにはutf-8にエンコードするとよいです。

hiragana = "あいうえお"
print(hiragana.encode('utf-8').isalnum()) # False

kanji = "日本語"
print(kanji.encode('utf-8').isalnum()) # False

katakana = "ハヒフヘホ"
print(kanji.encode('utf-8').isalnum()) # False

hankaku = "カキクケコ"
print(kanji.encode('utf-8').isalnum()) # False

おわり

is alphabet number の略でisalnum()なんですかね。

バリデーションも関数で簡単にできるようになるんですね。
最近やりたいこととは別の仕事でなかなか勉強できていないですが、少しずつでも覚えていきたいところです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です