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;
}
});
}
});
(部分代码如图,请不要使用括号)我正在尝试检查“联盟”变量是否为空,因为某些“公司”不在“联盟”中,如果它试图显示一个空的,这将是网站上的严重错误变量,那么有没有一种方法可以在从 XML 树中检索 allianceName 并将其设置为类似“No Alliance”(如果为空)后检查它是否为空?谢谢
原文由 timoxazero 发布,翻译遵循 CC BY-SA 4.0 许可协议
您在这里声明了真正的变量
在 JavaScript 中,带有空白字符的字符串的值实际上是真值。虽然上面的值看起来确实是空的,但事实并非如此。自己试试看。
要将这些变量设置为空,您需要在声明时不使用空格字符
有了这个之后,有两种方法可以检查变量是否为空
假设您不小心包含了空白字符,有几种方法可以解决这个问题。在这些情况下我们可以修改这些字符串。
在上面的示例中,
trim()
函数用于从字符串中删除空白字符。您还可以在字符串中搜索非空白字符
\S
修饰符查找所有非空白字符。或者,您也可以使用替换功能
全局标志
g
查找对前一个正则表达式的所有引用。