Wie gehe ich vor, um Whitespace innerhalb einer Zeichenfolge zu erkennen? Zum Beispiel habe ich eine Namenszeichenfolge wie:
"Jane Doe"
Denken Sie daran, dass ich sie nicht zuschneiden oder ersetzen möchte. Sie müssen nur feststellen, ob zwischen der ersten und der zweiten Zeichenfolge Leerzeichen vorhanden sind.
Verwenden Sie preg_match wie von Josh vorgeschlagen:
<?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)
Würde preg_match ("/\s /", $ string) nicht funktionieren? Der Vorteil gegenüber strpos besteht darin, dass Leerzeichen und nicht nur Leerzeichen erkannt werden.
Sie können nur nach alphanumerischen Zeichen suchen, die Leerzeichen nicht. Sie können auch ein Strpos für ein Leerzeichen erstellen.
if(strpos($string, " ") !== false)
{
// error
}
Sie können so etwas verwenden:
if (strpos($r, ' ') > 0) {
echo 'A white space exists between the string';
}
else
{
echo 'There is no white space in the string';
}
Dadurch wird ein Leerzeichen erkannt, jedoch keine andere Art von Leerzeichen.
<?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.