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
匹配其他几种类型的空白。