2014-12-13 110 views
-2

我想过滤特殊字符但不是所有特殊字符 所以我的代码是正确的?如何过滤特殊字符但不是所有特殊字符?

if (!ctype_alnum($skypename)) { 
echo 'Invalid skype name.'; 
exit; 
} 

This is valid 
echo123 
echo.123 
echo-123 

This is invalid 
[email protected] 
echo*123 

我如何过滤所有特殊字符,但不是。或者 - 感谢您

+1

而问题是什么? – Rizier123 2014-12-13 13:40:39

+0

@ Rizier123对不起,我添加了问题,最后几分钟,我忘了它。 – 2014-12-13 13:41:38

+0

什么是“特殊字符”的定义?或换句话说:您只需要包含以下名称的名称:[a-zA-Z0-9] [。]? – Rizier123 2014-12-13 13:43:07

回答

1

我觉得你在寻找这样的事情:

(如果$skypename只允许包含:[a-zA-Z0-9\.-]

<?php 

    $skypename = "[email protected]"; //As an example 

    if(!preg_match_all("/^[a-zA-Z0-9\.-]+$/", $skypename, $matches)) 
     echo "not "; 
    echo "valid"; 

?>