正则表达式为空字符串或空格

dtj*_*msy 21 javascript regex jquery

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

 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/>");
 }
Run Code Online (Sandbox Code Playgroud)

if($("#siren").val().match(regex)) 应该匹配空白字符串,然而,它似乎不起作用,我做错了什么?

谢谢你的帮助

Exp*_*lls 33

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

var regex = "^\\s+$";
var regex = /^\s+$/;
Run Code Online (Sandbox Code Playgroud)

另请注意,+至少需要一个空格.你可能想用*.


yan*_*yan 22

如果您正在使用jQuery,那么.trim().

if ($("#siren").val().trim() == "") {
  // it's empty
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你只需要支持JavaScript 1.8浏览器,有[String.trim](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) (2认同)

asa*_*lla 21

如果你正在寻找除空格之外的空字符串,你应该使用*而不是+

var regex = /^\s*$/ ;
                ^
Run Code Online (Sandbox Code Playgroud)


mar*_*cra 5

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

"    your string contents  ".trim();

// => "your string contents"
Run Code Online (Sandbox Code Playgroud)