Respostas:
Em vez de verificar a sequência inteira para ver se há apenas espaço em branco, verifique se há pelo menos um caractere sem espaço em branco:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Resposta mais simples se o seu navegador suportar a trim()
função
if (myString && !myString.trim()) {
//First condition to check if string is not empty
//Second condition checks if string contains just whitespace
}
if (/^\s+$/.test(myString))
{
//string contains only whitespace
}
isso verifica se há 1 ou mais caracteres de espaço em branco, se você também corresponder a uma sequência vazia, substitua-o +
por *
.
Bem, se você estiver usando jQuery, é mais simples.
if ($.trim(val).length === 0){
// string is invalid
}
Basta verificar a string nesse regex:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
A expressão regular que eu acabei usando para quando eu quero permitir espaços no meio da minha string, mas não no começo ou no final foi essa:
[\S]+(\s[\S]+)*
ou
^[\S]+(\s[\S]+)*$
Então, eu sei que essa é uma pergunta antiga, mas você pode fazer algo como:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
ou você pode fazer o que o nickf disse e usar:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Eu usei o método a seguir para detectar se uma string contém apenas espaço em branco. Também corresponde a cadeias vazias.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Esta pode ser uma solução rápida
return input < "\u0020" + 1;
return input < " 1";
que é apenas fazer comparação alfabética. Desde que a entrada seja classificada abaixo de "1", ela retornará true. Exemplo: return " asdfv34562345" < "\u0020" + 1;
avalia como verdadeiro.