Domanda Come controlli una stringa vuota in JavaScript?


l'ho visto filo, ma non ho visto un esempio specifico di JavaScript. C'è un semplice string.Empty disponibile in JavaScript, o è solo un caso di verifica per ""?


2141
2017-09-30 17:17


origine


risposte:


Se vuoi solo verificare se c'è un valore, puoi farlo

if (strValue) {
    //do something
}

Se dovessi controllare in modo specifico una stringa vuota su null, penserei di fare un confronto con "" è la tua migliore scommessa, usando il === operatore (così sai che è, in effetti, una stringa a cui stai confrontando).

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

2739
2017-09-30 17:20



Per verificare se una stringa è vuota, nullo o indefinito, io uso:

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

Per verificare se una stringa è vuota, nullo o indefinito, io uso:

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

Per verificare se una stringa è vuota o contiene solo spazi bianchi:

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

902
2017-07-16 01:45



Tutto quanto sopra è buono ma sarà ancora meglio. uso !!(Non nonoperatore).

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

o usa il casting di tipo:

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

Entrambi hanno la stessa funzione, scrivi cast la variabile su boolean, dove str è una variabile.
ritorna false per null,undefined,0,000,"",false.
ritorna true per stringa "0" e spazio "".


225
2018-03-30 13:34



Se hai bisogno di assicurarti che la stringa non sia solo un mucchio di spazi vuoti (sto assumendo che questo sia per la convalida del modulo) devi fare una sostituzione negli spazi.

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

88
2017-09-30 23:08



La cosa più vicina che puoi ottenere in str.Empty (con il presupposto che str è una stringa) è:

if (!str.length) { ...

75
2017-09-30 19:17



Io uso :

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

Non c'è niente che rappresenta una stringa vuota in JavaScript. Fai un controllo contro entrambi length (se sai che il var sarà sempre una stringa) o contro ""


23
2017-09-30 17:42



Provare:

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

22
2018-01-09 02:54



Non mi preoccuperei troppo di più efficiente metodo. Usa ciò che è più chiaro per la tua intenzione. Per me è di solito strVar == "".

EDIT: per commento da Constantin, se strVar potrebbe avere un po 'come finire con un valore intero di 0, allora sarebbe davvero una di quelle situazioni di chiarimento intenzionale.


21
2017-09-30 17:20