Регулярное выражение для пустой строки или пробела
Я пытаюсь определить, вводит ли пользователь пробел в текстовом поле:
var regex = "^\s+$" ;
if($("#siren").val().match(regex)) {
echo($("#siren").val());
error+=1;
$("#siren").addClass("error");
$(".div-error").append("- Champ Siren/Siret ne doit pas etre vide<br/>");
}
if($("#siren").val().match(regex))
должен соответствовать строке пробела, однако, похоже, что он не работает, что я делаю неправильно?
Спасибо за помощь
Ответы
Ответ 1
\
(обратная косая черта) в вызове .match
неправильно экранируется. Однако было бы проще использовать литерал регулярного выражения. Либо будет работать:
var regex = "^\\s+$";
var regex = /^\s+$/;
Также обратите внимание, что для +
потребуется хотя бы одно пространство. Вы можете использовать *
.
Ответ 2
Если вы используете jQuery, у вас есть .trim()
.
if ($("#siren").val().trim() == "") {
// it empty
}
Ответ 3
Если вы ищете пустую строку в дополнение к пробелу, который вы использовали, чтобы использовать *, а не +
var regex = /^\s*$/ ;
^
Ответ 4
http://jsfiddle.net/DqGB8/1/
Это мое решение
var error=0;
var test = [" ", " "];
if(test[0].match(/^\s*$/g)) {
$("#output").html("MATCH!");
error+=1;
} else {
$("#output").html("no_match");
}
Ответ 5
Имел подобную проблему, искал пробелы в строке, решение:
-
Для поиска 1 пробела:
var regex = /^.+\s.+$/ ;
example: "user last_name"
-
Для поиска нескольких пробелов:
var regex = /^.+\s.+$/g ;
пример: "фамилия пользователя"