46

我正在尝试检测用户是否在文本框中输入空格:

 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))应该匹配空白字符串,但是,它似乎不起作用,我做错了什么?

感谢您的帮助

4

6 回答 6

59

调用中的\(反斜杠).match未正确转义。不过,使用正则表达式文字会更容易。要么工作:

var regex = "^\\s+$";
var regex = /^\s+$/;

另请注意,这+将至少需要一个空格。您可能想要使用*.

于 2013-10-01T16:31:51.480 回答
30

如果您正在寻找除了空格之外的空字符串,您可以使用 * 而不是 +

var regex = /^\s*$/ ;
                ^
于 2013-10-01T16:32:29.947 回答
23

如果你使用 jQuery,你有.trim().

if ($("#siren").val().trim() == "") {
  // it's empty
}
于 2013-10-01T16:30:29.020 回答
4

如果只关心字符串开头和结尾的空格(但不在中间),那么另一种选择是使用 String.trim():

"    your string contents  ".trim();

// => "your string contents"
于 2019-04-18T10:22:53.663 回答
2

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");
 }
于 2013-10-01T16:38:37.040 回答
0

有类似的问题,正在寻找字符串中的空格,解决方案:

  • 要搜索 1 个空格:

    var regex = /^.+\s.+$/ ;
    

    示例:“用户姓氏”

  • 要搜索多个空格:

    var regex = /^.+\s.+$/g ;
    

    示例:“用户姓氏”

于 2017-08-30T21:51:55.357 回答