Как я могу найти пробелы внутри строки? Например, у меня есть строка имени, например:
"Джейн Доу"
Имейте в виду, что я не хочу обрезать или заменять его, просто определить, существует ли пробел между первой и второй строкой.
Используйте 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'; }
Это обнаружит пробел, но не любые другие пробелы.
<?php if(strpos('Jane Doe', ' ') > 0) echo 'Including space'; else echo 'Without space'; ?>
// 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); }
// 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.