我如何知道某些字符是否在字符串中?

问题描述:

我如何知道某些字符是否在字符串中? 我有5个无效字符,例如不能在用户名中使用。 { - ()*#}我该怎么做?我如何知道某些字符是否在字符串中?

+0

你接受``风的用户名?即你确定这些是你想检查的唯一特殊字符吗?如果是这样,我想问*为什么*? – deceze 2011-02-04 06:59:14

+0

tnx例如我说 – mamrezo 2011-02-04 07:00:32

if (preg_match('/[-()*#]/', $string)) { 
    echo 'string contains one or more illegal characters'; 
} 

if (preg_match('/[^a-zA-Z0-9]/', $string)) { 
    echo 'string contains non-alphanumeric characters'; 
} 

$disallowed = array('-', '(', ')', '*', '#'); 
$valid = true; 
foreach ($disallowed as $char) { 
    if (strpos($username, $char) !== false) $valid = false; 
} 

if ($valid) 
    echo 'valid username'; 
else 
    echo 'invalid username'; 

if (preg_match('/(\{|\(|-|\)|\*|#|\})+/g', $string)) { 
     echo 'invalid characters'; 
    } 

如果你只是要检查是否每一个字符是字母或数字,你coud使用:

if(ctype_alnum($text)){ 
    echo "Success!"; 
}