Регулярные выражения Javascript - Требуется проверка поля - PullRequest
7 голосов
/ 20 ноября 2008

Как проверить, является ли поле (текстовое поле) пустым или заполнено только пробелами (пробелы / вводы / табуляции и т. Д.), Используя javascript RegExp?

Ответы [ 4 ]

12 голосов
/ 20 ноября 2008
if (myField.value.match(/\S/)) {
  // field is not empty
}
// or
if (/\S/.test(myField.value)) {
  // field is not empty
}

Объяснение, поскольку у других людей, похоже, есть сумасшедшие разные идеи:

\s будет соответствовать пробелу, табуляции или новой строке.
\S будет соответствовать чему угодно, кроме пробела, табуляции или новой строки.
Если ваша строка содержит один символ, который не является пробелом, символом табуляции или новой строкой, он не является пустым.
Поэтому вам просто нужно найти один символ: \S

5 голосов
/ 20 ноября 2008
/^\s*$/.test(string)

Можно использовать так:

var empty_string = /^\s*$/; //create RegExp object for re-use

if (empty_string.test(myFormField.value))
{
  alert("Please be a bit more elaborate!");
}
1 голос
/ 20 ноября 2008
0 голосов
/ 20 ноября 2008

При тестировании на

<code>/\s/ or /\S/
вы будете тестировать только одного персонажа. Таким образом, вместо этого будет лучше проверить:
/^\s+$/ or /^\S+$/

РЕДАКТИРОВАТЬ: обратите внимание, что или не является частью кода.

EDIT2:

Тест на соответствие:


if(string.match(/^\s+$/)) {
   alert("string is empty!");
}

И тест на несоответствие:


if(!string.match(/^\S+$/)) {
   alert("string is empty!");
}

Вы можете использовать любой из них для того же результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...