Dize yalnızca boşluk varsa?

9 Cevap php

Nasıl bir dize only boşluk içeriyorsa görmek için kontrol edebilirim?

9 Cevap

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

veya boş dizeler eklemek istemiyorsanız,

if (strlen($str) > 0 && strlen(trim($str)) == 0)
echo preg_match('/^ *$/', $string)

Çalışmalıdır.

Normal bir ifade kullanabilirsiniz:

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

Eğer, herhangi bir boşluk karakteri için sadece boşluk test etmek isterseniz:

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

trim () sonucu 0'dan daha uzun olup olmadığını kontrol edin

dan: http://stackoverflow.com/a/2992388/160173

If you want to upvote, do it on the other answer, not this one!


Bu hızlı yol olacaktır:

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

}

Boş dize döndürür false boş beyaz-boşluk değildir çünkü. Boş bir dize eklemek için gerekiyorsa, || $str == '' Bu hala regex daha hızlı yürütülmesine neden veya kırpmak ekleyebilirsiniz.

ctype_space


bir fonksiyonu olarak:

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

Ben Regexes kullanarak overkill olduğunu düşünüyorum, ama burada başka sol'n zaten var:

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

Başka bir şekilde

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

Başka bir yol, sadece oyun için

<?php  
function is_space_str($str) {
    for($i=0,$c=strlen($str);$i<$c;$i++) {
        switch (ord($str{$i})) {
            case 21: 
            case 9:
            case 10: 
            case 13: 
            case 0:
            case 11: 
            case 32: 
            break;
            default:
                return false;
        }   
    }   

    return true;
} 
chop($str) === ''

Bu yeterli olacaktır.