私はこのPHP正規表現を持っています:
$username = preg_replace('/[^a-z0-9]/i', '', $username);
A-Z
とのみが許可されます0-9
。を許可する.
にはどうすればよいですか?-
_
私はこのPHP正規表現を持っています:
$username = preg_replace('/[^a-z0-9]/i', '', $username);
A-Z
とのみが許可されます0-9
。を許可する.
にはどうすればよいですか?-
_
次の正規表現を使用できます。
/[^a-z0-9._-]/i
/[^a-zA-Z0-9._-]/
/[^a-z0-9.\-_]/
ハイフンをエスケープしている場所簡単です。これらの文字も正規表現に追加するだけです
$username = preg_replace('/[^a-zA-Z0-9._-]/','',$username)
。「マッチオール」文字であるため、エスケープする必要があります。そうしないと、範囲を定義するために使用されるためです(もちろん、エスケープすることもできます)。
$username = preg_replace('/[^a-z0-9._-]/i', '', $username);
( ) グループの文字の 1 つではないものをすべて削除します。[^]
ハイパーンは最後のものであるため、特別な意味を失うことに注意してください。
何を照合する必要があるかが正確にわかっている場合は、文字グループで指定するだけです。ダッシュは、最初または最後にある必要があります。
/[A-Z0-9._-]/
$username = preg_replace('/[^a-z0-9._-]/i', '', $username);
現在のコードでは、実際にはA-Z
とa-z
の両方が許可i
されています。フラグは、正規表現を大文字と小文字を区別しないものとしてマークします。
$username = preg_replace('/[^a-z0-9._-]/i', '', $username);
試す
$username = preg_replace('/[^a-z0-9.-_]/i', '', $username);