こんにちはphpのpregmatchを使用して文字列をチェックする必要があります。有効であるためには、文字列は、マッチが順あなた」でなければならない場合には、少なくとも1つの大文字、少なくとも一つの小文字、その後、少なくとも1つのシンボルまたは数文字列に少なくとも1つの大文字、1つの小文字、1つの数字または記号があることを確認するにはPHPの正規表現が必要です
おかげ
こんにちはphpのpregmatchを使用して文字列をチェックする必要があります。有効であるためには、文字列は、マッチが順あなた」でなければならない場合には、少なくとも1つの大文字、少なくとも一つの小文字、その後、少なくとも1つのシンボルまたは数文字列に少なくとも1つの大文字、1つの小文字、1つの数字または記号があることを確認するにはPHPの正規表現が必要です
おかげ
を持っている必要があります
$result = (preg_match('/[A-Z]+/', $string) && preg_match('/[a-z]+/', $string) && preg_match('/[\d!$%^&]+/', $string));
:説明VEの文字が、私はそうわからない任意の順序にすることができた場合は、そのような3つの別々のチェックを行わず、
$result = preg_match('/[A-Z]+[a-z]+[\d!$%^&]+/', $string);
を使用することができます人々が以下に指摘しているように、あなたは先読みでこれをすべて1つの正規表現で行うことができます。あなたの要求によると
:
[A-Z]+
マッチ任意の大文字のchar
[a-z]+
マッチ任意の小文字の文字
[\d§$%&]+
マッチ数や特殊文字(必要であれば、より特別な追加)
結果は次のようになります。[A-Z]+[a-z]+[\d§$%&]+
これは理想的ではありません。 Regexrをチェックして、あなたの要件に合った正規表現を試してみてください。
あなたは先読み
^(?=.*[a-z])(?=.*[A-Z])(?=.*[\d,.;:]).+$
先読みにそれを参照してくださいを使用することによって、これを達成することができますが、それは文字と一致しないことを意味し、ゼロ幅アサーション、ある主張が述べられている場合、それはその位置からチェック本当です。すべてのアサーションは別々に評価されるため、文字は任意の順序で指定できます。どこかに文字列の場合
^
は、文字列の先頭
(?=.*[a-z])
チェックを照合し、どこかであればどこかに文字列の場合
(?=.*[A-Z])
チェック小文字であること
(?=.*[\d,.;:])
チェック大文字であります文字列は数字または他の文字の1つです。必要な文字を追加します。
.+$
はできるだけ早くアサーションの一つが故障して、文字列
の終わりまでの文字列にマッチし、完全な正規表現は失敗します。
これらが必ずしも順不同でないようにするには、先読みが必要です。あなたはこのように、数字と特殊文字の多くを置くことができ
$result = preg_match('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])', $string);
:
$result = preg_match('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9$%])', $string);
は、これらのことができます次の式では、少なくとも一つ下の文字、一つの上部のcharと1つの番号に検証します任意の順序で入力するか、最初に大文字を、次に小文字を、次に記号または数字を入力する必要がありますか?グループを混在させることはできますか? –
http://www.regular-expressions.info/ – JamesHalsall
なぜ正規表現ですか? phpは 'isdigit()'、 'islower()'などの関数を持っていませんか? – fge