Respuestas:
En lugar de verificar toda la cadena para ver si sólo hay un espacio en blanco, simplemente comprobar para ver si hay al menos un carácter de no espacios en blanco:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
La respuesta más simple si su navegador admite la trim()
función
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
}
esto busca 1 o más caracteres de espacio en blanco, si también coincide con una cadena vacía, reemplácela +
con *
.
Bueno, si estás usando jQuery, es más simple.
if ($.trim(val).length === 0){
// string is invalid
}
Simplemente verifique la cadena contra esta expresión regular:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
La expresión regular que terminé usando para cuando quiero permitir espacios en el medio de mi cadena, pero no al principio o al final fue esta:
[\S]+(\s[\S]+)*
o
^[\S]+(\s[\S]+)*$
Entonces, sé que esta es una vieja pregunta, pero podrías hacer algo como:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
o puedes hacer lo que nickf dijo y usar:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
He usado el siguiente método para detectar si una cadena contiene solo espacios en blanco. También coincide con cadenas vacías.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Esta puede ser una solución rápida
return input < "\u0020" + 1;
return input < " 1";
Lo que es hacer una comparación alfabética. Mientras la entrada se clasifique por debajo de "1", devolverá verdadero. Ejemplo: se return " asdfv34562345" < "\u0020" + 1;
evalúa como verdadero.