Qual é a melhor maneira de testar uma string vazia com jquery-of-the-box, ou seja, sem plugins? Eu tentei isso .
Mas não funcionou pelo menos pronto para o uso. Seria bom usar algo que está embutido.
Eu não gostaria de repetir
if (a == null || a=='')
em todos os lugares, se alguns if (isempty(a))
estariam disponíveis.
javascript
jquery
Martin
fonte
fonte
Respostas:
Para ignorar o espaço em branco para seqüências de caracteres:
Se você precisar de suporte legado (IE8-) para
trim()
, use$.trim
ou um polyfill .fonte
a
for "" ou qualquer outro valor falso (nulo, falso, indefinido, 0, NaN).if (!$.trim(a))
if (!a.trim())
um pouco perigoso? E sea
for indefinido ou nulo?O link que você deu parece estar tentando algo diferente do teste que você está tentando evitar repetir.
testa se a sequência é uma sequência vazia ou nula. O artigo ao qual você vinculou testa se a sequência consiste inteiramente em espaço em branco (ou está vazio).
O teste que você descreveu pode ser substituído por:
Como no javascript, uma sequência vazia e nula, ambas são avaliadas como falsas em um contexto booleano.
fonte
if(!a)
não falhará para uma string que consiste em digamos 4 espaços? ``0
como uma string vazia, mas não"0"
. Presumo que foi isso que você quis dizer? É possível que isso esteja sendo usado em uma situação em que você saiba quea
é uma sequência ou nula, mas sim. Algo para estar ciente.Com base na resposta de David, eu pessoalmente gosto de verificar primeiro o objeto em questão, se é uma string. Caso contrário, chamar
.trim()
um objeto não existente geraria uma exceção:Uso:
fonte
Verifique se os dados são uma sequência vazia (e ignore qualquer espaço em branco) com o jQuery:
fonte
Para verificar todos os 'vazios' como nulo, indefinido, '', '', {}, [] .
Casos de uso e resultados.
fonte
e
se você deseja aceitar nulo, mas rejeitar vazio
EDIT: woops, esqueceu sua condição é se estiver vazio
fonte
Tente executar isso no console do navegador ou em um repl do node.js.
Portanto, uma simples construção de ramificação será suficiente para o teste.
fonte
Como você também pode inserir números e cadeias de caracteres fixas, a resposta deve ser:
fonte
return !!$.trim(value);
Tente isto
fonte
fonte
null
entãoa.trim()
falharia. Esta é uma má ordem para verificar as coisas. E se você alterar a ordem, sua resposta não fornecerá nada que não tenha sido sugerido antes.