2013-07-09 8 views
0

Я хотел бы проверить и посмотреть, содержит ли данная строка какие-либо символы или просто все пробелы. Как я могу это сделать?Проверка, содержит ли строка какие-либо символы

Я попытался:

$search_term= " "; 

if (preg_match('/ /',$search_term)) { 
    // do this 
} 

Но это влияет на условия поиска, как это так:

$search_term= "Mark Zuckerburg"; 

Я хочу только условие, которое проверяет все белое пространство и без каких-либо символов.

Спасибо!

+0

отделка. если длина обрезанной строки равна 0, то это все белые пробелы. имеет другие символы :) – Fallen

+0

Возможный дубликат [Как проверить, есть ли только пробелы в строке в PHP?] (http://stackoverflow.com/questions/1754393/how-to-check-if-there-are -пространствами использующих только-в-строки-в-PHP) –

ответ

3

Использование trim():

if(trim($search_term) == ''){ 
    //empty or white space only string 
    echo 'Search term is empty'; 
} 

trim() отрежет пробельные символы как начало и конец строки - так, если строка содержит только пробелы подрезки будет возвращать пустую строку.

3

ctype_space делает это.

$search_term = " "; 

if (ctype_space($search_term)) { 
    // do this 
} 

Причина, по которой ваше регулярное выражение не работает, заключается в том, что он не привязан нигде, поэтому он ищет везде. Правильное регулярное выражение, вероятно, будет ^\s+$.

Разница между ctype_space и trim заключается в том, что ctype_space возвращает false для пустой строки. Используйте все, что подходит. (Или ctype_space($search_term) || $search_term === '' ...)

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