Vraag Hoe controleer je op een lege string in JavaScript?


ik zag dit draad, maar ik heb geen JavaScript-specifiek voorbeeld gezien. Is er een simpele string.Empty beschikbaar in JavaScript, of is het gewoon een kwestie van controleren ""?


2141
2017-09-30 17:17


oorsprong


antwoorden:


Als u alleen wilt controleren of er enige waarde is, kunt u doen

if (strValue) {
    //do something
}

Als u specifiek wilt controleren op een lege tekenreeks boven null, zou ik denken dat er wordt gecontroleerd "" is uw beste weddenschap, gebruiken de === operator (zodat je weet dat het in feite een string is waarmee je het vergelijkt).

if (strValue === "") {
    //...
}

2740
2017-09-30 17:20



Om te controleren of een string leeg, null of undefined is, gebruik ik:

function isEmpty(str) {
    return (!str || 0 === str.length);
}

Om te controleren of een string leeg, null of undefined is, gebruik ik:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

Om te controleren of een string leeg is of alleen witruimte bevat:

String.prototype.isEmpty = function() {
    return (this.length === 0 || !this.trim());
};

902
2017-07-16 01:45



Al het bovenstaande is goed, maar dit zal nog beter zijn. gebruik !!(niet niet) operator.

if(!!str){
some code here;
}

of gebruik type casting:

if(Boolean(str)){
    codes here;
}

Beide doen dezelfde functie, typ de variabele naar boolean, waar str is een variabele.
Komt terug false voor null,undefined,0,000,"",false.
Komt terug true voor string "0" en witruimte "".


225
2018-03-30 13:34



Als u ervoor wilt zorgen dat de reeks niet alleen een hoop lege spaties bevat (ik neem aan dat dit voor formuliervalidatie is), moet u een vervanging op de spaties uitvoeren.

if(str.replace(/\s/g,"") == ""){
}

88
2017-09-30 23:08



Het dichtsbijzijnde wat je kunt bereiken met str.Empty (met de voorwaarde dat str een tekenreeks is) is:

if (!str.length) { ...

75
2017-09-30 19:17



Ik gebruik :

function empty(e) {
  switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof this == "undefined":
      return true;
    default:
      return false;
  }
}

empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
    return ""
  })) // false

44
2017-07-09 18:52



var s; // undefined
var s = ""; // ""
s.length // 0

Er is niets dat een lege tekenreeks in JavaScript vertegenwoordigt. Voer een cheque uit tegen beide length (als je weet dat de var altijd een string is) of tegen ""


23
2017-09-30 17:42



Proberen:

if (str && str.trim().length) {  
    //...
}

22
2018-01-09 02:54



Ik zou me niet te veel zorgen maken om het meest doeltreffend methode. Gebruik wat het meest duidelijk is voor uw intentie. Voor mij is dat meestal strVar == "".

EDIT: per commentaar van Constantin, als strVar iets zou kunnen hebben hoe uiteindelijk een integer 0-waarde zou bevatten, dan zou dat inderdaad een van die intention-clarifying-situaties zijn.


21
2017-09-30 17:20



Functie:

function Is_Empty_or_Undefined (MyVar){      return (

        (typeof MyVar== 'undefined')
                    ||
        (MyVar == null) 
                    ||
        (MyVar == false)  //!MyVariable
                    ||
        (MyVar.length == 0)
                    ||
        (MyVar == "")
                    ||
        (MyVar.replace(/\s/g,"") == "")
                    ||
        (!/[^\s]/.test(MyVar))
                    ||
        (/^\s*$/.test(MyVar))
  );
}

19
2018-02-27 20:31