47

a-zA-Z0-9文字とパスワードのみを許可するパスワード フィールドの検証を作成しようとしています。.!@#$%^&*()_+-=

私はそれのこつを得ることができないようです。

使用するときの違いは何ですか?regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/どの文字を.!@#$%^&*()_+-=エスケープする必要がありますか?

私が今まで試したことは次のとおりです。

var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g

しかし、成功しませんでした

4

14 に答える 14

65
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g

動作するはずです

また、最小の長さ、つまり 6 文字が必要な場合もあります

var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
于 2013-09-15T12:24:56.927 に答える
13

違いは何ですか?

/[a-zA-Z0-9]/クラス内の 1 文字に一致する文字クラスです。3つの範囲で構成されています。

/a-zA-Z0-9/これらの 9 文字のリテラル シーケンスを意味します。

どの文字を.!@#$%^&*()_+-=エスケープする必要がありますか?

文字クラス内では、マイナス (末尾でない場合) とサーカムフレックス (先頭の場合) のみ。charclass の外で.$^*+()は、特別な意味があり、文字どおり一致するようにエスケープする必要があります。

a-zA-Z0-9文字のみを許可し、.!@#$%^&*()_+-=

それらを文字クラスに入れ、それらを繰り返して、文字列全体をアンカーでそれらと一致させる必要があります。

var regex = /^[a-zA-Z0-9!@#$%\^&*)(+=._-]*$/
于 2013-09-15T12:37:09.030 に答える
5

上記の正規表現にはいくつかの問題があります。

これは完全に機能します。

^[a-zA-Z\d\-_.,\s]+$

ここには許可された特殊文字のみが含まれ、コンマの後に拡張できます。

于 2014-04-24T09:53:37.710 に答える
3
// Regex for special symbols

var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
于 2015-01-21T00:32:33.347 に答える
3

この正規表現は、パスワードを検証するのにうまく機能します:

/[ !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/

この特殊文字 (空白と句読点を含む) のリストは、https ://www.owasp.org/index.php/Password_special_characters から取得されました。バックスラッシュ ('\') と閉じ括弧 (']') を正規表現の適切な動作のためにエスケープする必要があったため、少し変更されました。そのため、2 つのバックスラッシュ文字が追加されました。

于 2019-06-14T14:30:41.820 に答える
3

最小 8 文字、1 つの英字、1 つの数値、および 1 つの特殊文字の正規表現:

/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$/
于 2019-04-23T09:16:39.323 に答える