private static async Task ChangeBackground()
{
if (UserProfilePersonalizationSettings.IsSupported())
{
Uri uri = new Uri("https://source.unsplash.com/random/1920x1080");
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage response = await client.GetAsync(uri);
if (response != null && response.StatusCode == HttpStatusCode.Ok)
{
string filename = "background.jpg";
var imageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
using (IRandomAccessStream stream = await imageFile.OpenAsync(FileAccessMode.ReadWrite))
{
await response.Content.WriteToStreamAsync(stream);
}
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(filename);
UserProfilePersonalizationSettings settings = UserProfilePersonalizationSettings.Current;
if (!await settings.TrySetWallpaperImageAsync(file))
{
Debug.WriteLine("Failed");
}
else
{
Debug.WriteLine("Success");
}
}
}
catch
{
}
}
}
}
(图片中的部分代码,没有支持pp) 我试图检查"联盟"变量是空的,因为某些"" corp"不属于"联盟"如果它试图显示一个空变量,它将是网站上的严重错误,所以有没有办法检查allianceName是否为空,从XML树中检索并将其设置为类似" No Alliance"如果它是空的? 谢谢
答案 0 :(得分:2)
你在这里声明真正的变量
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
查找对前一个正则表达式的所有引用。
答案 1 :(得分:0)
我相信JavaScript中有一个名为isset()
的函数,它接受一个参数,如果设置为某个值则返回true,如果不是则返回false。
答案 2 :(得分:0)
如果您只想检查变量中是否有任何值,请尝试此操作,
if (str) {
//do something
}
,或者
//when undefined
if (typeof str == 'undefined'){
//do something
}
如果你需要专门检查空字符串是否为空,那么试试这个。
//when defined, but empty
if ((str.length == 0)||(str== ""))
{
//do something
}
答案 3 :(得分:0)
您可以尝试这样的事情:
注意:如果您的值为null
或undefined
,则!value?true:false
应该有效。同样value.length
也是很好的方法,但是应该在字符串的情况下使用。如果值为数字,value.length
将返回0
,即true
进行空检查。
function isEmpty(value) {
switch (typeof(value)) {
case "string": return (value.length === 0);
case "number":
case "boolean": return false;
case "undefined": return true;
case "object": return !value ? true : false; // handling for null.
default: return !value ? true : false
}
}
var a = " ";
console.log(a, "is empty:", isEmpty(a))
console.log(a, "is empty:", isEmpty(a.trim()))
a = 0;
console.log(a, "is empty:", isEmpty(a))
a = undefined;
console.log(a, "is empty:", isEmpty(a))
a = null;
console.log(a, "is empty:", isEmpty(a))

此外,您可以更改
allianceName = (xmlhttp.responseXML.getElementsByTagName("alliance")[0] || {
innerHTML: "
}).innerHTML;
到
allianceName = xmlhttp.responseXML.getElementsByTagName("alliance")[0].innerHTML || "";