前提・実現したいこと
フロントとバックの両方で条件演算子を用いたパスワードチェックを行いたいです。
発生している問題・エラーメッセージ
# Pythonでパスワードチェック # 条件:半英大/半英小/半数/半記号のうち2種以上を使用し、8文字以上、16文字以内で作成 # 文字種類の条件に当てはまった場合、カウントアップしていき、最後に文字数制限とともに判定する import re def chkPass(val): chkCount = 0 chkCount += 1 if re.match(r'[A-Z]', val) else chkCount chkCount += 1 if re.match(r'[a-z]', val) else chkCount chkCount += 1 if re.match(r'[0-9]', val) else chkCount chkCount += 1 if re.match(r'[!#$%&()*+,.:;=?@[]^_{}-]]', val) else chkCount if chkCount >= 2 and 8 <= len(val) <= 16: return True else: return False if not chkPassword('!!!!1111'): // OKになるはずがNGに入ってしまう print("パスワードNG") else: print('パスワードOK')
該当のソースコード
Javascript
1function chkPass(val) { 2 var chkCount = 0; 3 (val.match(/[A-Z]/)) ? chkCount++ : chkCount; 4 (val.match(/[a-z]/)) ? chkCount++ : chkCount; 5 (val.match(/[0-9]/)) ? chkCount++ : chkCount; 6 (val.match(/[!#$%&()*+,.:;=?@[]^_{}-]/)) ? chkCount++ : chkCount; 7 8 if (chkCount>= 2 && val.length >= 8 && val.length <= 16) { 9 return true; 10 } else { 11 return false; 12 } 13}
試したこと
フロントはJavascriptで正しくチェックができているので、バック側でもそのコードを参考に
書き換えを行っているのですが、Pythonでは思った通りの判定結果になりません。
エラーメッセージに記載してある条件を満たしている文字列でもFalseになってしまいます。
どなたかアドバイスを頂けると幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
flask
回答2件
あなたの回答
tips
プレビュー