Фильтрация строк только для пробелов в JavaScript - PullRequest
8 голосов
/ 17 декабря 2009

У меня есть текстовое поле, собирающее пользовательский ввод в мой код JS. Я хотел бы отфильтровать ввод нежелательной информации, например строки, содержащие только пробелы.

В C # я бы использовал следующий код:

if (inputString.Trim() == "") Console.WriteLine("white junk");
else Console.WriteLine("Valid input");

У вас есть рекомендации, как сделать то же самое в JavaScript?

Ответы [ 4 ]

16 голосов
/ 17 декабря 2009

Метод trim() для строк существует в стандарте ECMAScript Fifth Edition и был реализован Mozilla (Firefox 3.5 и связанные браузеры).

Пока другие браузеры не догонят, вы можете исправить их так:

if (!('trim' in String.prototype)) {
    String.prototype.trim= function() {
        return this.replace(/^\s+/, '').replace(/\s+$/, '');
    };
}

тогда:

if (inputString.trim()==='')
    alert('white junk');
11 голосов
/ 17 декабря 2009

Используйте регулярное выражение:

if (inputString.match(/^\s*$/)) { alert("not ok"); }

или даже проще:

if (inputString.match(/\S/)) { alert("ok"); }

\ S означает «любой не пробел».

2 голосов
/ 17 декабря 2009

В качестве альтернативы, /^\s*$/.test(inputString)

1 голос
/ 17 декабря 2009
function trim (myString)
{
    return myString.replace(/^\s+/,'').replace(/\s+$/,'')
} 

используйте это так: if (trim (myString) == "")

...