2012-05-10 3 views

ответ

24

Еще один хороший пост для: Faster JavaScript Trim

Вам просто нужно применить trim функцию и проверить длину строки. Если длина после обрезки равна 0, то строка содержит только пробелы.

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

Или просто '! Str.trim()' – Oriol

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

Это предполагает, что 'input' является значением, а не элементом ввода. – Joseph

+0

Да, вроде 'var input =" dfdfd "', я думаю, получение входного значения из реального ввода не является большой проблемой. –

+0

Я предпочитаю это решение для .trim(), потому что вы ищете определенный шаблон символов, и это точно и явно, что описывает регулярное выражение. Читателю потребуется немного больше времени, чтобы понять ваш умный трюк с отделкой. – Chris

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

В качестве альтернативы, вы можете сделать test(), который возвращает логическое значение вместо массива

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

Самое быстрое решение использует функцию регулярного выражения прототип test() и ищет любого характера который не является пробелом или разрывом линии \S:

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

В случае, если у вас супер длинная строка, это может существенно повлиять.

Смежные вопросы