Shopify 液体-将数组转换为小写
我使用的是Shopify,我想挂到客户标签上,但它们是区分大小写的。因此Shopify 液体-将数组转换为小写,shopify,liquid,Shopify,Liquid,我使用的是Shopify,我想挂到客户标签上,但它们是区分大小写的。因此{%if customer.tags包含“批发”%}与{%if customer.tags包含“批发”%}不同。我的客户在应用标签时可能会坚持一种情况,也可能不会坚持一种情况,因此我希望在将来防止这种情况发生 我想获取一个数组customer.tags,并将所有值转换为小写。我正试图找出逻辑,但遇到了麻烦 我想将customer.tags放入一个不工作的新数组中 {% assign newArray = customer.t
{%if customer.tags包含“批发”%}
与{%if customer.tags包含“批发”%}
不同。我的客户在应用标签时可能会坚持一种情况,也可能不会坚持一种情况,因此我希望在将来防止这种情况发生
我想获取一个数组customer.tags,并将所有值转换为小写。我正试图找出逻辑,但遇到了麻烦
我想将customer.tags放入一个不工作的新数组中
{% assign newArray = customer.tags %}
{{ newArray }}
我做错了什么?您可以使用以下方法:
{% assign contains_wholesale = false %}
{% for tag in customer.tags %}
{% assign lowercase_tag = tag | downcase %}
{% if lowercase_tag == 'wholesale' %}
{% assign contains_wholesale = true %}
{% endif %}
{% endfor %}
注意:
downcase
仅适用于ASCII字符。如果您需要搜索带有重音字母或其他Unicode字符的字符串,那么这是不够的。使用“contains”操作符时的另一个解决方案是跳过“w”
类似于{%if customer.tags包含“holesale”}的东西应该可以工作 如果您想将
customer.tags
保留为一个数组,这样您就可以在一个简单的if
语句中继续使用contains
(如您的示例)。您还可以将两个液体过滤器链接在一起,以将数组中的所有字符串都转换为小写
例如:
{% assign lowercaseTags = customer.tags | join: ',' | downcase | split: ',' %}
{% assign randomString = 'WholeSale' | downcase %}
{% if lowerCaseTags contains randomString %}
{% comment %}
Will now match regardless of case sensitivity
{% endcomment %}
{% endif %
说明:
- :将数组转换为一个字符串,用
- :使整个字符串小写
- :与join相反,根据join
中使用的字符从字符串重新创建数组,