2017-10-06 189 views
-2

我试图找到一个preg_match过滤只包含的字符串特殊字符如-PHP preg_match只有特殊字符

但是,字符串本身可以包含特殊字符,但不应该只是特殊字符。

任何想法如何做到这一点?

如果字符串只包含特殊字符,结果应该返回true。所以像

if(preg_match('//',$string)) echo $string; //I leave the pattern empty as this is the actual question. 
+1

请显示预期的输出和你现在得到的结果+代码 –

+0

当我在寻找匹配模式时,无法帮助代码。我知道如何在字符串中找到特殊字符,但我确实需要它来过滤只包含特殊字符的字符串,例如------ – blackswan

+0

请给出一些测试用例。输入字符串和预期结果。 – Toto

回答

2

您需要匹配任何字母数字字符的字符串。

$one= "%^&"; 
$two = "asd%asd"; 


function notOnlySpecialChars($str) { 
    if (preg_match('/[A-Za-z0-9]/', $str)) { //Replaced _ with - 
     return true; 
    } else { 
     return false; 
    } 
} 
notOnlySpecialChars($one); //false 
notOnlySpecialChars($two); //true 
+0

谢谢!我太愚蠢了我猜:-) – blackswan