Eu quero tentar fazer uma chamada de string equivalente ao C # String.IsNullOrEmpty(string)
em javascript. Procurei online presumindo que havia uma ligação simples a ser feita, mas não consegui encontrar uma.
Por enquanto, estou usando uma if(string === "" || string === null)
declaração para cobri-lo, mas prefiro usar um método predefinido (continuo recebendo alguns casos que escapam por algum motivo)
Qual é a chamada javascript (ou jquery se houver) mais próxima que seria igual?
javascript
jquery
Stanley Cup Phil
fonte
fonte
Respostas:
Você está pensando demais. Cadeias de caracteres nulas e vazias são valores falsey em JavaScript.
if(!theString) { alert("the string is null or empty"); }
Falsey:
fonte
Se, por qualquer motivo, você quisesse apenas testar
null
eempty
, poderia fazer:function isNullOrEmpty( s ) { return ( s == null || s === "" ); }
Nota: Isso também pegará undefined como @Raynos mencionado nos comentários.
fonte
return (s == null || s === "")
s == null
pega ambosnull
eundefined
desdenull == undefined
if (!string) { // is emtpy }
Qual é a melhor maneira de testar uma string vazia com jquery-out-of-the-box?
fonte
Se você sabe que
string
não é numérico, funcionará:if (!string) { . . .
fonte
string
for de fato uma string, mas o número zero, entãostring
será falsey. Não será um problema se soubermos questring
é uma string real ou nula.você pode apenas fazer
if(!string) { //... }
Isso verificará se
string
há strings indefinidas, nulas e vazias.fonte
Para ficar claro,
if(!theString){//...}
onde theString é uma variável não declarada lançará um erro indefinido, não o encontrará verdadeiro. Por outro lado, se você tiver:if(!window.theString){//...}
ouvar theString; if(!theString){//...}
funcionará conforme o esperado. No caso em que uma variável não pode ser declarada (em oposição a ser uma propriedade ou simplesmente não configurada), você precisa usar:if(typeof theString === 'undefined'){//...}
Minha preferência é criar uma função de protótipo que resolva tudo para você.
fonte
Como a resposta marcada como correta contém um pequeno erro, aqui está minha melhor tentativa de encontrar uma solução. Eu tenho duas opções, uma que leva uma string, a outra leva uma string ou um número, já que presumo que muitas pessoas estão misturando strings e números em javascript.
Passos: -Se o objeto for nulo, é uma string nula ou vazia. -Se o tipo não for string (ou número), o valor da string será nulo ou vazio. NOTA: podemos lançar uma exceção aqui também, dependendo das preferências. -Se o valor da string aparada tiver um comprimento menor que 1, ele será nulo ou vazio.
var stringIsNullOrEmpty = function(theString) { return theString == null || typeof theString != "string" || theString.trim().length < 1; } var stringableIsNullOrEmpty = function(theString) { if(theString == null) return true; var type = typeof theString; if(type != "string" && type != "number") return true; return theString.toString().trim().length < 1; }
fonte
você pode dizer isso pela lógica
Digamos que você tenha um nome de variável strVal, para verificar se é nulo ou vazio
if (typeof (strVal) == 'string' && strVal.length > 0) { // is has a value and it is not null :) } else { //it is null or empty :( }
fonte
Você pode criar um método utilitário que pode ser reutilizado em muitos lugares, como:
function isNullOrEmpty(str){ var returnValue = false; if ( !str || str == null || str === 'null' || str === '' || str === '{}' || str === 'undefined' || str.length === 0 ) { returnValue = true; } return returnValue; }
fonte