705

正規表現でそれを確認したい:

パスワードには、少なくとも 1 つの数字を含む 8 文字以上が含まれ、小文字と大文字の両方、および特殊#文字?( !.

古いパスワードを使用したり、ユーザー名を含めたりすることはできません"password""websitename"

これは、大文字 1 文字、小文字 1 文字、数字または特殊文字 1 文字を含む 8 文字の検証式です。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

大文字1文字、特殊文字1文字、英数字を含む8文字のパスワードはどのように書けばよいですか?

4

40 に答える 40

1790

最低 8 文字、少なくとも 1 つの文字と 1 つの数字:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"

最低 8 文字、少なくとも 1 つの文字、1 つの数字、および 1 つの特殊文字:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"

最低 8 文字、少なくとも 1 つの大文字、1 つの小文字、および 1 つの数字:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

最低 8 文字、少なくとも 1 つの大文字、1 つの小文字、1 つの数字、および 1 つの特殊文字:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"

最小 8 文字から最大 10 文字、少なくとも 1 つの大文字、1 つの小文字、1 つの数字、および 1 つの特殊文字:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
于 2014-01-30T12:44:17.457 に答える
621

この正規表現は、複数の先読みアサーション (条件)で使用できます。

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

この正規表現は、次のルールを適用します。

  • 少なくとも 1 つの大文字の英字,(?=.*?[A-Z])
  • 少なくとも 1 つの小文字の英字、(?=.*?[a-z])
  • 少なくとも一桁、(?=.*?[0-9])
  • 少なくとも 1 つの特殊文字、(?=.*?[#?!@$%^&*-])
  • 長さ 8 つ.{8,}以上 (アンカーを含む)
于 2013-10-26T09:48:45.187 に答える
98

正規表現には AND 演算子がないため、有効性が AND 何か AND 何か AND 何かで定義されている場合、有効なパスワードに一致する正規表現を記述するのはかなり困難です...

ただし、正規表現には OR 演算子があるため、DeMorgan の定理を適用して、無効なパスワードに一致する正規表現を記述します。

8 文字未満の文字列OR数字のないものOR大文字を含まないものOR小文字を含まないものOR特殊文字を含まないもの。

そう:

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$

一致するものがある場合、それは無効なパスワードです。

于 2015-11-08T01:56:39.793 に答える
46

@anubhavaの答えのほんの少しの改善:特殊文字はキーボードの文字に限定されているため、これを任意の特殊文字に使用してください:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

この正規表現は、次のルールを適用します。

  • 少なくとも 1 つの大文字の英字
  • 少なくとも 1 つの英小文字
  • 少なくとも 1 桁
  • 少なくとも 1 つの特殊文字
  • 長さは最低8
于 2014-01-10T19:11:41.493 に答える
37

私の状況では、最も一般的な回答に従うのが少し困難でした。たとえば、検証が;やなどの文字で失敗してい[ました。私は自分の特殊文字をホワイトリストに登録することに興味がなかったので、代わりに[^\w\s]テストとして活用しました - 簡単に言えば - 非単語文字 (数字を含む) と非空白文字に一致します。要約すると、これが私のために働いたものです...

  • 少なくとも8文字
  • 少なくとも1数字
  • 少なくとも1小文字
  • 少なくとも1大文字
  • 少なくとも1特殊文字

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

JSFiddle Link - さまざまなケースをカバーする簡単なデモ

于 2015-10-23T00:05:03.860 に答える
14

JavaScript ファイルをインポートしますjquery.validate.min.js

この方法を使用できます:

$.validator.addMethod("pwcheck", function (value) {
    return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});
  1. 少なくとも 1 つの大文字の英字
  2. 少なくとも 1 つの英小文字
  3. 少なくとも 1 桁
  4. 少なくとも 1 つの特殊文字
于 2014-04-24T12:16:24.543 に答える
12

これを試してください:

  1. 最低 6 文字
  2. 少なくとも 1 つの大文字
  3. 少なくとも 1 つの小文字
  4. 少なくとも 1 つの特殊文字

表現:

"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"

オプションの特殊文字:

  1. 少なくとも 1 つの特殊文字
  2. 少なくとも 1 つの数字
  3. 特殊文字はオプションです
  4. 最小 6 文字、最大 16 文字

表現:

"/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"

最小条件と最大条件が不要な場合は削除します.{6, 16}

  • 6は最小文字数制限です
  • 最大文字数は20文字です
  • ?=は一致式を意味します
于 2016-10-19T15:51:26.323 に答える
3

@ClasGはすでに提案しています:

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

ただし、_(アンダースコア) を特殊文字として受け入れません (例: Aa12345_)。

改善されたものは次のとおりです。

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$
于 2017-12-28T22:48:49.653 に答える
3

シンプルにバカにしてください:

これでうまくいくはずです。

正規表現:^(.{0,7}|[^a-z]{1,}|[^A-Z]{1,}|[^\d]{1,}|[^\W]{1,})$|[\s]

パスワードが上記の正規表現と一致する場合、それは無効です。

一致するものがない場合、パスワードは有効であり、少なくとも 8 文字、大文字 1 文字、小文字 1 文字、および記号または特殊文字 1 文字が含まれています。また、スペース、タブ、改行も含まれていません。

正規表現の内訳

  1. .{0,7}- パスワードが 0 ~ 7 文字の場合に一致します。
  2. [^a-z]{1,}- 小文字が見つからない場合に一致
  3. [^A-Z]{1,}- 大文字が見つからない場合に一致
  4. [^\d]{1,}- 数字 ([0-9] の間) が見つからない場合に一致
  5. [\s]- 空白、タブ、または改行が見つかった場合に一致します。

このアプローチでは、許可されるシンボルに関して制限や制限はありません。許容できるシンボルを少数に制限したい場合は、 で変更[^\W]して[^YourSymbols]ください。

于 2021-11-26T15:06:15.957 に答える
3

必要に応じて、このパターンは問題なく機能するはずです。これを試して、

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

文字列変数を作成し、パターンを割り当て、パターンが正しい場合は true、そうでない場合は false を返すブール メソッドを作成するだけです。

サンプル:

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
String password_string = "Type the password here"

private boolean isValidPassword(String password_string) {
    return password_string.matches(Constants.passwordPattern);
}
于 2016-06-30T05:09:27.807 に答える
2
(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+-]).{6}
于 2015-11-03T17:49:49.293 に答える
1

これを使って、

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%?=*&]).{8,20})

少なくとも 1 つの小文字、1 つの大文字、1 つの数字、および特殊文字 (!、@、#、$、%、?、=、*、&) について検証します。

最小の長さは 8、最大の長さは 20 です

于 2019-11-30T12:47:26.037 に答える
0

Java/Android で、次のパターンで少なくとも 1 つの数字、1 つの文字、1 つの特殊文字を含むパスワードをテストするには:

"^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,}$"
于 2016-08-05T11:34:19.457 に答える
0

以下がうまくいくことを願っています。これを Azure カスタム ポリシーで試しました。

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&*\-_+=[\]{}|\\:',?/`~"();!])([A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();!]|\.(?!@)){6,16}$
于 2018-08-13T07:12:06.413 に答える
-1

前の回答の1つで見つけた解決策は次のとおりです。

*最小 8 文字 少なくとも大文字のアルファベット 1 つ、小文字のアルファベット 1 つ、数字 1 つ、特殊文字 1 つ:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"*

...私にはうまくいきませんでしたが、以下は簡略化されたバージョンであり、うまく機能します(好きな特殊文字を追加してください。ここに # を追加しました)。

"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&]){8,}"
于 2017-04-05T15:36:39.100 に答える