2012-03-09 12 views
1

パスワードルールの設定に奇妙な要件があります。 私はパスワードルールの正規表現

^(?=.*[A-Z]).{5,8}$

..応じて、次の式を使用ししかし、それがない私の要件は、大文字だけを許可するように、パスワードルールを設定することで、min.password長は5で、最大のパスワードな長さは8です。そのようには動作しません。後で、[A-Z]は大文字のみが許されているわけではなく、少なくとも大文字でなければならないということを知りました。 これは{5,8}の範囲でうまく動作し、大文字のみを許可するための他の要件を完了してくれました。 他のすべてのものに対して否定を設定することはできますか?もしそうなら、否定を書く方法を教えてください。

^(?=[A-Z]{5-8}$) 

それは意味:エンド・オブ・文字列に続いて5-8 A-Z文字

事前に感謝..

+1

これはかなり悪いパスワードルールです。 –

+0

hehe .. yaしかし、それは我々の要求(奇妙なもの;)).. :) – NoviceCoder

答えて

3

次の音:

^[A-Z]{5,8}$ 

私はあなたが「ゼロ幅の正の先読み」です(?=...)のようなものを必要とする理由はわかりません。文字列にマッチするだけで、何も難しいものではありません。

+0

良い答えが、なぜあなたは量量を変更しましたか? @stema:正規表現エンジンの方言に依存していると思いますが、それはコンマで、ダッシュ=> '^ [A-Z] {5,8} $' – stema

+0

ではありません。一貫性のためにコンマに変更します。 –

+0

ちょうど興味のない、どの方言がダッシュを使用していますか?私はそれを見たことがない。 – stema

2

ルールは次のようなものでなければなりません。私は()の$を入れていることに注意してください、あなたは他のルールを追加することができるように/たとえば、これは同じプラス「のみ」そうなしAAAAAAAAAAAの除外ルールである文字列

^(?=[A-Z]{5-8}$)(?!A+$) 

を消費します。 ..あなたが記述する何の最も簡単な実装のような

+0

Thanq ..それは私のunderstaning ..を改善しました:D – NoviceCoder