回答受付終了まであと7日

Googleの正規表現について質問です。 新規パスワードを入力してもらう質問で、大文字・小文字・数字の3種類全て使用して8文字以上で入力して欲しいのですが、 『一致する▼』^[a-zA-Z0-9]{8,}$としても、 aaaaaaaaと入力しても通ってしまいます。 アラートが出るのは8文字未満の時だけです。 なんと記載するのが正解でしょうか。 教えて下さい(´༎ຶོρ༎ຶོ`)よろしくお願い致します!

1人が共感しています

回答(2件)

その正規表現は「大文字/小文字/数字だけを使って8文字以上」という効果です。1つずつ使うとの効果は持ちません。 先読みの正規表現が使えれば複数文字種を含むかの判定が正規表現1つで実現可能ですが、Googleフォームはサポートしていないようです。おそらく処理負荷が高くなりやすいからでしょう。よってGoogleフォームでは実現できない。そもそもフォームだとパスワードを送るなとの表記が強制されますから、そこでパスを求めてるとサービスの信頼が落ちます。 自前で1からサイトを作れば正規表現のフルサポートを受けられるはずなので、そこで^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9]){8,}$にするのが無難。

この回答はいかがでしたか? リアクションしてみよう

AIアイコン

AIからのお助け回答

AIアイコンClaude(Anthropic)

正規表現で「大文字・小文字・数字の3種類全て使用して8文字以上」というパスワード条件を設定するには、肯定的先読み(positive lookahead)を使用する必要があります。 以下の正規表現が適切です: ``` ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9]{8,}$ ``` この正規表現の意味: ・`(?=.*[a-z])` - 少なくとも1つの小文字が含まれること ・`(?=.*[A-Z])` - 少なくとも1つの大文字が含まれること ・`(?=.*\d)` - 少なくとも1つの数字が含まれること ・`[a-zA-Z0-9]{8,}` - 英数字のみで8文字以上であること この正規表現を使用すれば、「aaaaaaa」のような小文字のみの入力や、大文字のみ、数字のみの入力は拒否され、3種類全てを含む8文字以上のパスワードのみが受け付けられます。

この回答は生成AIで作成したものであり、最新性や正確性等を保証するものではありません。その他注意事項はこちら