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

时间:2013-10-01 16:28:49

标签: javascript jquery regex

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

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

感谢您的帮助

7 个答案:

答案 0 :(得分:26)

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

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

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

答案 1 :(得分:22)

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

if ($("#siren").val().trim() == "") {
  // it's empty
}

答案 2 :(得分:20)

如果您要查找除空格之外的空字符串,则需要使用*而不是+

var regex = /^\s*$/ ;
                ^

答案 3 :(得分: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");
 }

答案 4 :(得分:0)

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

  • 要搜索1个空格:

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

    示例:“user last_name”

  • 要搜索多个空格:

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

    示例:“用户姓”

答案 5 :(得分:0)

谈论脚本和空格时的一个重要说明:浏览器将空格,空格,制表符和换行符解析为空格确实意味着它们实际上是空格。空格本身就是Error: No node found for selector: .save-btn (字符160)。即通常,如果您在Mac上编写PHP文件,并且神奇地不仅击中了空格,您还会看到一个看起来像空格但又不是空格的字符。要删除该错误并使突然开始出现的神奇错误500消失,请从脚本中删除所有\xA0(字符160)。 (搜索时,在TextWrangler / BBEdit中,您在搜索对话框中选中了“ Grep”复选框-在Coda,Eclipse等中应该类似)。需要花费一些时间来弄清楚。即使不是100%与该主题匹配,它也是当您精确搜索该问题时在Google上的第一个结果。希望对别人有帮助。

答案 6 :(得分:0)

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

"    your string contents  ".trim();

// => "your string contents"