Comment pourrais-je détecter les espaces dans une chaîne? Par exemple, j'ai une chaîne de noms comme:
"Jane Doe"
N'oubliez pas que je ne veux ni le rogner ni le remplacer, mais simplement détecter s'il existe un espace entre la première et la deuxième chaîne.
Utilisez preg_match comme suggéré par Josh:
<?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));
Ouputs:
int(1)
int(0)
int(1)
preg_match ("/\s /", $ string) ne fonctionnerait-il pas? L'avantage de ceci sur les strpos est qu'il détectera tous les espaces, pas seulement les espaces.
Vous pouvez vérifier uniquement les caractères alphanumériques, ce qui n'est pas le cas. Vous pouvez également faire une strpos pour un espace.
if(strpos($string, " ") !== false)
{
// error
}
Vous pouvez utiliser quelque chose comme ceci:
if (strpos($r, ' ') > 0) {
echo 'A white space exists between the string';
}
else
{
echo 'There is no white space in the string';
}
Cela détectera un espace, mais pas tout autre type d’espace.
<?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.