2015-05-12 82 views
-1

我沒有。的字符串,我想確定那些有特殊字符的字符串。確定一個字符串有特殊字符

我想這上面做

if (!preg_match('/[^A-Za-z0-9]/', $url)) { 
    echo "special character"; 
} 

而且我自己也嘗試:

if (ctype_alnum($url)) { 
    echo "special character"; 
} 

我想允許的字符是a-z, A-Z, 0-9,_,-,/

而且我包含特殊字符的字符串像

torbjörn-hallber等

我該怎麼做?請幫忙。

+0

的可能重複[PHP:如何判斷一個字符串中包含任何特殊字符(http://stackoverflow.com/questions/3256175/php-how-to-tell-if-a-string - 包含任何特殊字符) – Saty

回答

3

您的第一次嘗試preg_match很好,只是不否定返回值。

if (preg_match('/[^A-Za-z0-9]/', $url)) { 
    echo 'special character'; 
} 

要允許更多的字符,包括/,所以我用~作爲分隔符。

if (preg_match('~[^a-z0-9/_-]~i', $url)) { 
    echo 'special character'; 
} 
+0

[豹](http://stackoverflow.com/users/1595669/panther)我試過了,但它給了我一個字符串 - macvittie,因爲它有特殊的性格和torbjìn-hallber作爲if塊內有效的字符串。 – afeef

+0

@afeef:不可能,你確定你在'preg_match'之前刪除了'!'嗎?這兩個正則表達式的作品。 – panther

+0

豹現在得到它。但如何添加更多的字符呢? bcoz當我這樣做(preg_match('〜[^ a-z0-9/_-。]〜i',$ url))(增加。作爲額外的字符)它給了我一個錯誤編譯失敗:範圍出錯字符類在偏移量11 – afeef