2008-12-28 135 views
5

我需要检查变量是否包含除a-z A-Z 0-9和“。”以外的任何其他变量。角色(句号)。任何帮助,将不胜感激。只允许PHP中的某些字符

回答

8
if (preg_match('/[^A-Z\d.]/i', $var)) 
    print $var; 
6
if (preg_match("/[^A-Za-z0-9.]/", $myVar)) { 
    // make something 
} 

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

+0

我认为这只会检测由_only_未指定字符组成的字符串 - 最好使用/[^A-Za-z0-9\.]/ – 2008-12-28 14:44:49

9

有两种方法可以做到这一点。

判断变量是否包含允许范围内的任何一个字符而不是。这是通过使用一个负字符类[^ ...]实现:

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

钍另一种方法是,以确保该字符串中的每个字符是在允许的范围内:

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