2012-05-10 13 views

Respuesta

24

Otro buen puesto para: Faster JavaScript Trim

sólo tiene que aplicar trim función y comprobar la longitud de la cadena. Si la longitud después del recorte es 0 - entonces la cadena contiene solo espacios.

var str = "data abc"; 
if((jQuery.trim(str)).length==0) 
    alert("only spaces"); 
else 
    alert("contains other characters"); 
+0

O simplemente '! Str.trim()' – Oriol

9
if (!input.match(/^\s*$/)) { 
    //your turn... 
} 
+0

Esto supone que 'input' es el valor, no el elemento de entrada. – Joseph

+0

Sí, como 'var input =" dfdfd "', supongo que obtener el valor de entrada de la entrada real no es un gran problema. –

+0

Prefiero esta solución a .trim(), porque estás buscando un patrón específico de caracteres, y eso es precisamente y explícitamente lo que describe una expresión regular. Le tomará un poco más de tiempo al lector entender su ingenioso truco con adornos. – Chris

0
if(!input.match(/^([\s\t\r\n]*)$/)) { 
    blah.blah(); 
} 
2

Alternativamente, se puede hacer un test() que devuelve un valor lógico en lugar de un conjunto

//assuming input is the string to test 
if(/^\s*$/.test(input)){ 
    //has spaces 
} 
0

La solución más rápida está utilizando la función prototipo de expresiones regulares test() y en busca de cualquier carácter eso no es un espacio o un salto de línea \S:

if (/\S/.test(str)) 
{ 
    // found something other than a space or a line break 
} 

En caso de que tenga una cuerda muy larga, puede hacer una gran diferencia.

Cuestiones relacionadas