2015-05-12 4 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 -contains-any-special-characters) – 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

[panther] (http://stackoverflow.com/users/1595669/panther) Я попробовал, но это дало мне строку - macvittie, поскольку она имеет особый характер и torbjörn-hallber как допустимая строка внутри if block. – afeef

+0

@afeef: невозможно, вы уверены, что удалили '!' Перед 'preg_match'? Оба регулярных выражения работают. – panther

+0

Пантера получила его сейчас. но как добавить в него больше символов? bcoz, когда я делаю это (preg_match ('~ [^ a-z0-9/_-.] ~ i', $ url)) (добавлено как дополнительный символ), это дает мне ошибку. Ошибка компиляции: диапазон не соответствует порядку в символьный класс при смещении 11 – afeef

Смежные вопросы