如何获取所有仅包含数字的帖子标签?

时间:2019-12-26 15:57:52

标签: blogger

我在以下标签中有一个博客文章:鞋子,男士,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 > &quot;0&quot;   &quot;1&quot; or data:label.name  contains &quot;2&quot; or data:label.name  contains &quot;3&quot; or data:label.name  contains &quot;4&quot; or data:label.name  contains &quot;5&quot; or data:label.name  contains &quot;6&quot; or data:label.name  contains &quot;7&quot; or data:label.name  contains &quot;8&quot; or data:label.name  contains &quot;9&quot; or data:label.name  contains &quot;0&quot; '><data:label.name/> </b:if> </b:loop>

但是没有给出预期的结果

2 个答案:

答案 0 :(得分:0)

标签名称被视为字符串(数据类型)而不是数字,因此您无法使用诸如gte lte之类的数字运算符进行比较。您可以使用字符串运算符== != contains

,在条件标记中,必须用双引号"89"&quot;89&quot;

括住字符串
<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,请考虑增加范围的结尾。