Wenn Zeichenfolge nur Leerzeichen enthält?

Lesezeit: 3 Minuten

Wie kann ich überprüfen, ob eine Zeichenfolge nur enthält Leerzeichen?

  • Irgendein Whitespace oder nur Leerzeichen?

    – Wilhelm Brendel

    28. Februar 2010 um 21:37 Uhr

  • mögliches Duplikat von How to check if there are only spaces in string in PHP?

    – Molot

    5. März 2014 um 10:11 Uhr

  • substr_count($str, ' ') === strlen($str)

    – kräh

    27. Juli 2016 um 1:10 Uhr

  • @caw Beste Antwort! Die Frage fragte nach einer Möglichkeit zu erkennen, ob eine Zeichenfolge nur enthält Räumedie meisten Antworten prüfen, ob nur Zeichenfolgen enthalten sind Leerzeichen.

    – Leia

    2. April 2017 um 7:29 Uhr

Benutzer-Avatar
Johannes Knöller

if (strlen(trim($str)) == 0)

oder wenn Sie keine leeren Zeichenfolgen einfügen möchten,

if (strlen($str) > 0 && strlen(trim($str)) == 0)

  • ich würde sagen if (strlen(trim($str)) != strlen($str))

    – Esteban Küber

    28. Februar 2010 um 21:39 Uhr

  • @voyager: das würde bestimmen, ob die Zeichenfolge hatte irgendein Führende oder nachgestellte Leerzeichen, die Frage ist, ob es vorhanden ist nur Räume.

    – Johannes Knöller

    28. Februar 2010 um 21:42 Uhr

  • @voyager: Was ist mit " hello world "? In diesem Fall strlen(trim($str)) ist 11 und strlen($str) ist 15, aber die Zeichenfolge ist es nicht nur aus Leerzeichen zusammengesetzt.

    – Wilhelm Brendel

    28. Februar 2010 um 21:43 Uhr

  • Punkt genommen, aber es müsste sein if ((strlen(trim($str)) != strlen($str)) && (strlen(trim($str)) == 0)) wenn Sie sicherstellen möchten, dass der String nur Leerzeichen enthält, aber es ist nicht ein leer Schnur.

    – Esteban Küber

    28. Februar 2010 um 23:01 Uhr

  • @voyger: das ist immer noch übertrieben. tun if (strlen($str)>0 && strlen(trim($str))==0) Wenn es das ist was du willst. oder verwenden !empty($str). Warum würden Sie sich die Mühe machen, es mit der getrimmten Saite zu vergleichen?

    – mp

    1. März 2010 um 1:21 Uhr


von: https://stackoverflow.com/a/2992388/160173

Wenn Sie positiv abstimmen möchten, tun Sie dies bei der anderen Antwort, nicht bei dieser!


Das geht am schnellsten:

$str="      ";
if (ctype_space($str)) {

}

Kehrt zurück false auf leere Zeichenfolge, da leer kein Leerzeichen ist. Wenn Sie eine leere Zeichenfolge einschließen müssen, können Sie hinzufügen || $str == '' Dies führt immer noch zu einer schnelleren Ausführung als Regex oder Trim.

ctype_space


als eine Funktion:

function stringIsNullOrWhitespace($text){
    return ctype_space($text) || $text === "" || $text === null;
}

echo preg_match('/^ *$/', $string)

Sollte arbeiten.

  • @stereofrog: Ich stimme respektvoll nicht zu. Regexes sind für so etwas übertrieben, was von eingebauten Funktionen perfekt gehandhabt werden kann.

    – Esteban Küber

    1. März 2010 um 16:30 Uhr

  • Das stimmt, und vielleicht sind eingebaute Funktionen wie von John gezeigt schneller als Regexp. Aber ich liebe Regexp, und ich mache alles, was ich kann, mit ihnen, auch wenn es überhaupt nicht nötig ist. Und außerdem war ich mir sicher, dass die einfachsten Lösungen gepostet wurden, ich möchte nur, dass die Leute Regexp nicht vergessen: D

    – Enrico Carlesso

    1. März 2010 um 17:03 Uhr

  • gibt immer 0 zurück für ——– $str = “ffff gggg”; echo preg_match(‘/^ *$/’,$str);

    – Benutzer889030

    17. Januar 2017 um 17:21 Uhr

Prüfen Sie, ob das Ergebnis von trim() länger als 0 ist

Verwenden Sie einen regulären Ausdruck:

$result = preg_match('/^ *$/', $text);

Wenn Sie auf Leerzeichen testen möchten, nicht nur auf Leerzeichen:

$result = preg_match('/^\s*$/', $text);

Benutzer-Avatar
mpen

Ich denke, die Verwendung von regulären Ausdrücken ist übertrieben, aber hier ist trotzdem eine andere Lösung:

preg_match('`^\s*$`', $str)

Benutzer-Avatar
Geisterhund74

ein anderer Weg

preg_match("/^[[:blank:]]+$/",$str,$match);

1299730cookie-checkWenn Zeichenfolge nur Leerzeichen enthält?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy