18

次の基準に基づいてパスワードを検証する必要があるRails3アプリケーションに取り組んでいます。must be at least 6 characters and include one number and one letter.

これが私の正規表現です:

validates :password, :format => {:with => /^[([a-z]|[A-Z])0-9_-]{6,40}$/, message: "must be at least 6 characters and include one number and one letter."}

今のところ、(例:dogfood)のパスワードを入力すると、合格します。しかし、私がそれをする必要があるのは、上記の基準に合格することです。

私は正規表現がそれほど得意ではないので、すべての助けに大いに感謝します!

4

1 に答える 1

34

先読みアサーションを使用します。

/^(?=.*[a-zA-Z])(?=.*[0-9]).{6,}$/
  |             |          |
  |             |          |
  |             |          Ensure there are at least 6 characters.
  |             |
  |             Look ahead for an arbitrary string followed by a number.
  |                        
  Look ahead for an arbitrary string followed by a letter.

技術的には、この場合、アンカーは必要ありませんが、アンカーを使用するのは良い習慣です。

于 2012-08-16T17:37:57.903 に答える