var characterName = document.getElementById("pilotName").value;
var characterID = 0;
var charSecStatus = 0;
var corpName = " ";
var allianceName = " ";
//callback
makeRequest('https://api.eveonline.com/eve/CharacterID.xml.aspx?names=' + characterName, function() {
if (xmlhttp.status == OK_RESPONSE) {
//read character info
characterID = xmlhttp.responseXML.getElementsByTagName("row")[0].getAttribute("characterID");
makeRequest('https://api.eveonline.com/eve/CharacterInfo.xml.aspx?characterID=' + characterID, function() {
if (xmlhttp.status == OK_RESPONSE) {
//read character info
characterID = xmlhttp.responseXML.getElementsByTagName("characterID")[0].innerHTML;
charSecStatus = xmlhttp.responseXML.getElementsByTagName("securityStatus")[0].innerHTML;
corpName = xmlhttp.responseXML.getElementsByTagName("corporation")[0].innerHTML;
allianceName = (xmlhttp.responseXML.getElementsByTagName("alliance")[0] || {
innerHTML: ""
}).innerHTML;
}
});
}
});
(部分代码如图,无括号垃圾邮件) 我正在尝试检查“联盟”变量是否为空,因为某些“公司”不在“联盟”中,如果它试图显示一个空变量,这将是网站上的严重错误,所以有没有办法检查如果 allianceName 在从 XML 树中检索它并将其设置为类似“No Alliance”(如果它是空的)之后是否为空? 谢谢
最佳答案
你在这里声明了真正的变量
var corpName = " ";
var allianceName = " "
在 JavaScript 中,带有空白字符的字符串的值实际上是真值。虽然上面的值看起来确实是空的,但事实并非如此。亲自尝试一下。
Boolean(" ");
=> true
要将这些变量设置为空,您需要在声明时不使用空格字符
var corpName = "";
var allianceName = "";
有了这个之后,有两种方法可以检查变量是否为空
if (!corpName || !corpName.length)
假设您不小心包含了空白字符,有几种方法可以解决这个问题。在这些情况下,我们可以修改这些字符串。
Boolean(" ".trim());
=> false
在上面的示例中,trim()
函数用于从字符串中删除空白字符。
您还可以在字符串中搜索非空白字符
/\S/.test(" ")
=> false
\S
修饰符查找所有非空白字符。
或者,您也可以使用替换功能
Boolean(" ".replace(/\s/g, ''));
全局标志 g
查找对前一个正则表达式的所有引用。
关于javascript - 如何检查 JavaScript 中的变量是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35306632/