如果字符串不包含任何内容或只包含空格,我需要返回true
,否则false
。
var str = ""; // true
var str = " "; // true
var str = " 1 "; // false
var str = " s "; // false
我该怎么做?
我尝试过使用/^\s*?$/
。
答案 0 :(得分:1)
答案 1 :(得分:1)
我会用空格替换空格,看看长度是多少。
var strTest = str.replace(" ","");
if(strTest.length == 0) {dowork();}
如果字符串是全部空格,那么长度将为0。
答案 2 :(得分:1)
你也可以这样做:
if (!str || !str.replace(/ /g, "")) {
// str is either empty, null, undefined or has nothing in it other than spaces
}
如果str
null
或undefined
也是如此,这也可以保护您。
这是使用OP测试用例的演示:
var testStrings = ["", " ", " 1 ", " s "];
testStrings.forEach(function(str) {
var result = false;
if (!str || !str.replace(/ /g, "")) {
// str is either empty, null, undefined or has nothing in it other than spaces
result = true;
}
log('"' + str + '"' + " tests as " + result + "<br>");
});
function log(x) {
var r = document.getElementById("results");
var div = document.createElement("div");
div.innerHTML = x;
r.appendChild(div);
}
&#13;
<pre id="results"></pre>
&#13;