Как мне найти пробелы в строке? Например, у меня есть строка имени как:
"Джейн Доу"
Имейте в виду, что я не хочу обрезать или заменить его, просто определите, существует ли пробел между первой и второй строкой.
Используйте preg_match, как предложено Джошем:
<?php $foo = "Dave Smith"; $bar = "SamSpade"; $baz = "Dave\t\t\tSmith"; var_dump(preg_match('/\s/',$foo)); var_dump(preg_match('/\s/',$bar)); var_dump(preg_match('/\s/',$baz));
Выходы:
int(1) int(0) int(1)
Не будет preg_match ("/ \ s /", $ string) работать? Преимущество этого перед strpos заключается в том, что он обнаруживает любые пробелы, а не только пробелы.
Вы можете проверить только буквенно-цифровые символы, которые не являются пробелами. Вы также можете сделать strpos для пробела.
if(strpos($string, " ") !== false) { // error }
Вы можете использовать что-то вроде этого:
if (strpos($r, ' ') > 0) { echo 'A white space exists between the string'; } else { echo 'There is no white space in the string'; }
Это обнаружит пробел, но не любой другой вид пробела.
// returns no. of matches if $str has nothing but alphabets,digits and spaces. function is_alnumspace($str) { return preg_match('/^[A-Za-z0-9 ]+$/i',$str); } // This variation allows uppercase and lowercase letters.
// returns no. of matches if $str has nothing but alphabets,digits and spaces. function is_alnumspace($str){ return preg_match('/^[a-z0-9 ]+$/i',$str); }
http://no.php.net/strpos
<?php if(strpos('Jane Doe', ' ') > 0) echo 'Including space'; else echo 'Without space'; ?>