以下の正規表現では、パスワードが1つの数字、1つの文字(上位または下位)を持ち、長さが最低8であることが必要です。しかし、特殊なcharを入力するとfalseを返します。私は特別なcharを必要としたくないのですが、私はこの文脈で許可したいと思います。この正規表現を特殊なcharを許可するように変更するにはどうすればよいですか?特殊文字を許可する正規表現ですか?
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")
以下の正規表現では、パスワードが1つの数字、1つの文字(上位または下位)を持ち、長さが最低8であることが必要です。しかし、特殊なcharを入力するとfalseを返します。私は特別なcharを必要としたくないのですが、私はこの文脈で許可したいと思います。この正規表現を特殊なcharを許可するように変更するにはどうすればよいですか?特殊文字を許可する正規表現ですか?
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")
変更に "\ w" の ""それを行う必要があります。
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$")
正常に(あなたの「特別な」の定義と使用している言語に応じて)特殊文字とは一致しませんワットマッチ「単語」の文字、\。
。改行を除く任意の文字に一致します
「特殊文字」は通常、句読点や句読点や空白を意味します。それは数字と数字の文字を表す同じオタク語の方言のものです。 –
なぜ3つの別々のチェックをしないと、パスワードが必要なパラメータを満たしているかどうかを確認できます。
if (Regex.IsMatch(Password, "\d") &&
Regex.IsMatch(Password, "\w") &&
Password.length >= 8) //psuedo-code
これは任意の文字を制限するものではありません。パスワードに少なくとも1つの単語文字、少なくとも1つの数字があり、少なくとも8文字の長さであることを確認します。
確かにクリーナー。 – user105033
しかし、特殊な文字と一致しません。 – user105033
これらは一致しませんが、必要はありません。それらを*除外しません。もちろん、額縁は余分です。 – chaos
トラン、あなたは以下を使用し、パスワードに空白を許可しない場合:
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z]\S{8,}$")
特殊文字?ご指定ください。 – mveerman