プロが教えるわが家の防犯対策術!

Ruby on Rails を学習中です。

パスワードは、
「長さは8文字以上で、英数記号全てを含まなければならない」
としたいと思います。

正規表現はどのように書けばよろしいでしょうか?
VALID_PASSWORD_REGEX = /\A[\w]/i
validates :password, length: { minimum: 8 }, format: { with: VALID_PASSWORD_REGEX }

[a-zA-Z] && [\d] && [!|@|#|$|%] と書けると良いのですが、
正規表現では and 表現が難しいようなので、困っています。

助けて頂けないでしょうか?
どうぞよろしくお願いいたします。

A 回答 (1件)

こんにちは



> 「長さは8文字以上で、英数記号全てを含まなければならない」


Railsはわかりませんが以下の正規表現で如何でしょうか?

/(?=.{8,})(?=.*\d+.*)(?=.*[a-zA-Z]+.*).*[!@#$%]+.*/


VALID_PASSWORD_REGEXに"8文字以上"の条件をいれる必要がなければ

/(?=.*\d+.*)(?=.*[a-zA-Z]+.*).*[!@#$%]+.*/

"記号"の部分は使用する記号を適宜追加してみてください。
    • good
    • 1
この回答へのお礼

おはようございます。 早乙女遙佳です。
目覚めたら、ご回答があり、とっても助かります。
よく分からないところもありますので、
より深く学習して理解を深めたいと思います。
ご回答、ありがとうございました。
感謝です。

お礼日時:2014/05/19 08:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!