我在以下标签中有一个博客文章:鞋子,男士,20%, 89
我只想获取包含数字的标签,就我而言,我想获取 89 标签
我尝试了很多类似的方法:
<b:loop values='data:post.labels' var='label'> <b:if cond='data:label.name gte 10'><data:label.name/> </b:if> </b:loop>
和
<b:loop values='data:post.labels' var='label'> <b:if cond='data:label.name > "0" "1" or data:label.name contains "2" or data:label.name contains "3" or data:label.name contains "4" or data:label.name contains "5" or data:label.name contains "6" or data:label.name contains "7" or data:label.name contains "8" or data:label.name contains "9" or data:label.name contains "0" '><data:label.name/> </b:if> </b:loop>
但是没有给出预期的结果
答案 0 :(得分:0)
标签名称被视为字符串(数据类型)而不是数字,因此您无法使用诸如gte
lte
之类的数字运算符进行比较。您可以使用字符串运算符==
!=
contains
也,在条件标记中,必须用双引号"89"
或"89"
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name == "20%"'>
<data:label.name/>
</b:if>
</b:loop>
修改:如果要获取包含任意数字的帖子标签
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name contains "0" or data:label.name contains "1" or data:label.name contains "2" or data:label.name contains "3" or data:label.name contains "4" or data:label.name contains "5" or data:label.name contains "6" or data:label.name contains "7" or data:label.name contains "8" or data:label.name contains "9"'>
<data:label.name/>
</b:if>
</b:loop>
答案 1 :(得分:0)
就像@Bassam的回答一样:
标签名称将字符串(数据类型)视为数字,而不是数字,因此您无法使用某些数字运算符(例如gte lte)进行比较。您可以使用字符串运算符
==
,!=
,contains
。
但是,您可以在内部为一系列数字创建另一个循环,并检查标签名称是否与该范围内的数字之一匹配,如下所示:
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:loop values='1 to 100' var='num'>
<b:if cond='data:label.name == data:num'><data:label.name/></b:if>
</b:loop>
</b:loop>
</b:if>
如果标签名称超过100,请考虑增加范围的结尾。