2017-01-22 5 views
-1

I 다음 문자열이 있습니다확인 문자열을 각 단어 사이에 1 개 이상의 공간이 음의 반환 경우 그렇다면

$name = "John Lucas"; 

을 그리고 $name 1 개 이상의 공간 사이에있는 경우 조건을하고 싶습니다 각 단어는 거짓을 반환합니다.

그 방법에 대한 아이디어가 있습니까?

업데이트 예 : $ 이름은 각 단어 사이에 1 개 이상의 공간이

<input name="name" type="text"/> //example 
<?php 
    $name = $_REQUEST['name']; 
    if ($name has more than 2 spaces between each word) { 
     echo 'FALSE'; 
    } 
?> 
+0

'$ spaceCount = substr_count을,' –

+0

안녕 @MarkBaker, 정확히 무엇을합니까? 문자열 안의 모든 공백을 계산합니까? 문자열에 각 단어 사이에 1 개 이상의 공백이 있는지 확인해야하기 때문에 –

+0

은 왜 여분의 공간이 문제인지 궁금합니다. 특별한 이유가 있습니까? –

답변

1

경우 다음 false를 돌려줍니다.

preg_match 기능을 사용하여 솔루션 : ('', $ 이름)

function hasSingleSpaces($str) { 
    return (bool) !preg_match("/\w+\s{2,}(?=\w+)/", $str); 
} 

var_dump(hasSingleSpaces("John  Lucas")); // false 
var_dump(hasSingleSpaces("John Lucas hello")); // false 
var_dump(hasSingleSpaces("John Lucas hello")); // true 
+0

그것은 매력처럼 일했습니다, 많이 고마워요! –

+0

@ 빅터 유고, 천만에요. – RomanPerekhrest