在PHP中只允许某些字符

在PHP中只允许某些字符,php,regex,Php,Regex,我需要检查变量是否包含除a-z a-z 0-9和“.”字符(句号)以外的任何内容。任何帮助都将不胜感激 if (preg_match("/[^A-Za-z0-9.]/", $myVar)) { // make something } 这里的关键点是在[]组中使用“^”-它匹配除括号内字符外的所有字符。有两种方法 if (preg_match('/[^A-Z\d.]/i', $var)) print $var; 告诉变量是否包含任何一个不在允许范围内的字符。这是通过使用负字符类[^…

我需要检查变量是否包含除a-z a-z 0-9和“.”字符(句号)以外的任何内容。任何帮助都将不胜感激

if (preg_match("/[^A-Za-z0-9.]/", $myVar)) {
   // make something
}

这里的关键点是在[]组中使用“^”-它匹配除括号内字符外的所有字符。

有两种方法

if (preg_match('/[^A-Z\d.]/i', $var))
  print $var;
告诉变量是否包含任何一个不在允许范围内的字符。这是通过使用负字符类[^…]实现的:

preg_match('/[^a-zA-Z0-9\.]/', $your_variable);
另一种选择是确保字符串中的每个字符都在允许的范围内:

!preg_match('/^[a-zA-Z0-9\.]*$/', $your_variable);

我认为这只会检测只包含未指定字符的字符串-最好使用/[^A-Za-z0-9\.]/更好。但我还是建议使用/[^A-Z\d.]/I,因为它更清晰,打字也更少。而且您不需要转义字符类中的“.”。