我在以下标签中有一个博客帖子: 鞋子, 男士, 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>
但它没有给出预期的结果
如@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,请考虑增加范围的末尾。
标签名称被视为字符串(数据类型(而不是数字,因此无法使用某些数字运算符(如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>