Javascript 用于空字符串或空白的正则表达式

Javascript 用于空字符串或空白的正则表达式,javascript,jquery,regex,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/>"); }

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

 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/>");
 }
var regex=“^\s+$”;
if($(“#siren”).val().match(regex)){
回声($(“#警报器”).val();
误差+=1;
$(“#siren”).addClass(“错误”);
$(“.div错误”)。追加(“-Champ Siren/sirent ne doit pas etre vide
”); }
如果($(“#siren”).val().match(regex))
应该匹配空白字符串,但是,它似乎不起作用,我做错了什么


感谢您的帮助

如果您使用的是jQuery,那么就有了
.trim()

.match
调用中的
\
(反斜杠)未正确转义。不过,使用正则表达式文字会更容易。这两种方法都有效:

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

还要注意,
+
至少需要一个空格。如果要查找空字符串以及需要使用*而不是*的空格,则可能需要使用
*

+

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

这是我的解决方案

var error=0;
var test = [" ", "   "];
 if(test[0].match(/^\s*$/g)) {
     $("#output").html("MATCH!");
     error+=1;
 } else {
     $("#output").html("no_match");
 }

遇到类似问题,正在字符串中查找空格,解决方案:

  • 要搜索1个空间,请执行以下操作:

    var regex = /^.+\s.+$/ ;
    
    示例:“用户姓氏”

  • 要搜索多个空间,请执行以下操作:

    var regex = /^.+\s.+$/g ;
    
    示例:“用户姓氏”


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

“您的字符串内容”。trim();
//=>“您的字符串内容”

如果您只需要支持JavaScript 1.8浏览器,那么就有@ExplosionPills,我确信jQuery在内部实现了这一点,而OP已经使用了jQuery。@Overcode在哪里可以看到简单性?trim()也使用正则表达式,比/^\s*$/IMHO更复杂,这表明代码的意图比正则表达式更清楚。Saying
foo.trim()=''
表示“忽略空格的字符串是否为空?”。说
foo.match(/^\s*$/)
就是问“字符串foo是否与正则表达式定义的状态机匹配?”。是的,正则表达式很简单,但仍然不太清楚。您也不能保证通过正则表达式定义
trim
,许多JS引擎都内置了它。@yan谈到了原生trim。至于“状态机”部分,你做得太过分了:-)当你说“似乎不起作用”时,你能更具体一点吗?您是否可以共享失败的输入示例?我使用var regex=“^\\s+$”;它很有魅力,非常感谢大家
var regex = /^.+\s.+$/g ;