Javascript 如何检查字符串是否不包含任何内容或仅包含空格?

Javascript 如何检查字符串是否不包含任何内容或仅包含空格?,javascript,jquery,regex,Javascript,Jquery,Regex,如果字符串不包含任何内容或仅包含空格,则需要返回true,否则返回false var str = ""; // true var str = " "; // true var str = " 1 "; // false var str = " s "; // false 我该怎么做 我尝试过使用/^\s*?$/ /^ *$/ ^-从一开始 $-直到结束 *-字符串由零个或多个空格组成 ^-从一开始 $-直到结束 *-字符串由零个或多个空格组成 我会将空格替换为零,

如果字符串不包含任何内容或仅包含空格,则需要返回
true
,否则返回
false

var str = "";     // true
var str = "   ";  // true
var str = "  1 "; // false
var str = " s ";  // false
我该怎么做

我尝试过使用
/^\s*?$/

/^ *$/
  • ^
    -从一开始
  • $
    -直到结束
  • *
    -字符串由零个或多个空格组成

  • ^
    -从一开始
  • $
    -直到结束
  • *
    -字符串由零个或多个空格组成

我会将空格替换为零,然后看看长度是多少

var strTest = str.replace(" ","");
if(strTest.length == 0) {dowork();}

如果字符串是all spaces,那么长度将是0。

我会将空格替换为nothing,然后查看长度是多少

var strTest = str.replace(" ","");
if(strTest.length == 0) {dowork();}
如果字符串为所有空格,则长度为0。

您还可以执行以下操作:

if (!str || !str.replace(/ /g, "")) {
    // str is either empty, null, undefined or has nothing in it other than spaces
}
如果
str
null
未定义
,这也会保护您

下面是一个使用OP测试用例的演示:

var testStrings=[“”、“”、“1”、“s”];
forEach(函数(str){
var结果=假;
如果(!str | |!str.replace(//g,“”)){
//str要么为空、null、未定义,要么除了空格之外没有其他内容
结果=真;
}
日志(“+str+”“+”测试为“+result+”
”); }); 函数日志(x){ var r=document.getElementById(“结果”); var div=document.createElement(“div”); div.innerHTML=x; r、 儿童组;; }
您还可以执行以下操作:

if (!str || !str.replace(/ /g, "")) {
    // str is either empty, null, undefined or has nothing in it other than spaces
}
如果
str
null
未定义
,这也会保护您

下面是一个使用OP测试用例的演示:

var testStrings=[“”、“”、“1”、“s”];
forEach(函数(str){
var结果=假;
如果(!str | |!str.replace(//g,“”)){
//str要么为空、null、未定义,要么除了空格之外没有其他内容
结果=真;
}
日志(“+str+”“+”测试为“+result+”
”); }); 函数日志(x){ var r=document.getElementById(“结果”); var div=document.createElement(“div”); div.innerHTML=x; r、 儿童组;; }


你试过什么代码?@AdamKonieska
/^\s*?$/
你试过什么代码?@AdamKonieska
/^\s*?$/
如果(string.length=0)总是0,你怎么估计它总是0?如果str=“this”-那么长度应该是4,因为它是一个赋值运算符,而不是一个比较运算符。Javascript是我的第五/第六语言-我确信他得到了jist。。以后,只需在一个明显的打字错误上编辑帖子。
如果(string.length=0)
始终为0。您如何估计它将始终为0?如果str=“this”-那么长度应该是4,因为它是一个赋值运算符,而不是一个比较运算符。Javascript是我的第五/第六语言-我确信他得到了jist。。将来,只需在一个明显的输入错误上编辑帖子。如果有空格,您的正则表达式将返回true,您需要
^
$
来匹配OPs要求,以匹配仅由空格组成的字符串。@AdamKonieska-我想您没有意识到这是怎么回事。我使用的是
.replace()
,所以只剩下字符串中的非空格字符,这只是测试字符串中的非空格字符是否为空。@jfriend00你说得对。我脑子里想OP希望测试时
为假。@AdamKonieska-你可以运行我添加到我答案中的演示。如果有空格,你的正则表达式将返回真,您需要
^
$
来匹配OPs要求,以匹配仅由空格组成的字符串。@AdamKonieska-我想您没有意识到这是在做什么。我使用的是
.replace()
,所以只剩下字符串中的非空格字符,这只是测试字符串中的非空格字符是否为空。@jfriend00你说得对。我脑子里想的是OP希望测试时
是假的。@AdamKonieska-你可以运行我添加到我答案中的演示。@ndn不是
'\t'
空白或unicode空白?@dev null,OP在评论中说他试图使用
\s
,但没有得到想要的结果。考虑到这一点以及他这方面缺乏负面反馈,我们只能合理地假设,当他说空格时,他实际上是指空格。所以要回答你的问题-不,标签不是空格。@ndn你说得对。。。仅供参考,请您告诉我如何将制表符添加到该正则表达式?堆栈,您可以使用字符集而不是单个空格。使用
[]
定义字符集。在这种情况下,
[\t]
将匹配空格或制表符
\s
匹配其他几种类型的空格。@ndn不是
'\t'
空空格还是unicode空格?@dev null,OP在评论中说他试图使用
\s
,但没有得到想要的结果。考虑到这一点以及他这方面缺乏负面反馈,我们只能合理地假设,当他说空格时,他实际上是指空格。所以要回答你的问题-不,标签不是空格。@ndn你说得对。。。仅供参考,请您告诉我如何将制表符添加到该正则表达式?堆栈,您可以使用字符集而不是单个空格。使用
[]
定义字符集。在这种情况下,
[\t]
将匹配空格或制表符
\s
匹配其他几种类型的空白。