-1

paternフォーム検証プラグインに付属の拡張ルールを使用して、正規表現でパスワードを検証しようとしています。私はインターネットから多くの式を試しましたが、これまでのところ私の要件を満たすものはありませんでした。または、何らかの理由で説明どおりに機能しません。私が必要とするのは、以下を検証することです:

  1. パスワードは 6 文字から 20 文字である必要があります
  2. 少なくとも 1 つの大文字が含まれている必要があります
  3. 少なくとも 1 つの数字が含まれている必要があります
  4. 少なくとも 1 つの小文字が含まれている必要があります
  5. 繰り返しが可能でなければならない
  6. 文字の位置は関係ありません
  7. 空白を許可してはいけません
  8. それらのサブセットからの特殊文字はオプションにする必要があります

したがって、ユーザーは以下の例を入力できるはずです。

  1. aaaaaa1A
  2. パスワード
  3. abCdef9
  4. $$$h1Tzzzz

誰かが私を助けてくれるなら、ここを見てみようと思いました。私は正規表現の専門家ではありません。

4

3 に答える 3

5

XKCD

ユーザーが任意のパスワードを入力できるようにする必要があります。

とにかく、あなたのタスクは、おそらくいくつかのテストを 1 つずつ実行する方がよいでしょう。これはプログラミングが簡単であるだけでなく、パスワードを受け入れない理由を正確にユーザーに伝えることもできます。

于 2013-01-18T01:50:42.610 に答える
0

ただし、正規表現の使用は 2 回考慮する必要があります。これを行う方法は次のとおりです。

var pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=[\$!]).{6,26}$/;
var password = '$$$h1Tzzzz';
password.match(pattern);
//output
["$$$h1Tzzzz"]
password = '$$$hTzzzz';
password.match(pattern);
//output
null

\$ と ! を使用して、括弧に特殊文字を追加できます。「$」は特別な意味があるため、エスケープされます。

于 2013-01-18T02:07:43.340 に答える
0

そのために正規表現を使用しないでください。

チェックのリストがあります。通常の文字列関数を使用してチェックするだけです。

于 2013-01-18T01:51:01.707 に答える