2014-12-13 108 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"; 

?>