PHP - обнаружение пробелов между строками - PullRequest
30 голосов
/ 22 июля 2009

Как мне найти пробелы в строке? Например, у меня есть строка имени как:

"Джейн Доу"

Имейте в виду, что я не хочу обрезать или заменить его, просто определите, существует ли пробел между первой и второй строкой.

Ответы [ 7 ]

76 голосов
/ 22 июля 2009

Используйте 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)
8 голосов
/ 22 июля 2009

Не будет preg_match ("/ \ s /", $ string) работать? Преимущество этого перед strpos заключается в том, что он обнаруживает любые пробелы, а не только пробелы.

8 голосов
/ 22 июля 2009

Вы можете проверить только буквенно-цифровые символы, которые не являются пробелами. Вы также можете сделать strpos для пробела.

if(strpos($string, " ") !== false)
{
   // error
}
5 голосов
/ 09 августа 2011

Вы можете использовать что-то вроде этого:

if (strpos($r, ' ') > 0) {
    echo 'A white space exists between the string';
}
else
{
    echo 'There is no white space in the string';
}

Это обнаружит пробел, но не любой другой вид пробела.

0 голосов
/ 27 февраля 2011
// 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.
0 голосов
/ 16 марта 2010
// 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);
}
0 голосов
/ 22 июля 2009

http://no.php.net/strpos

<?php
if(strpos('Jane Doe', ' ') > 0)
    echo 'Including space';
else
    echo 'Without space';
?>
...