Liquid - 将数组转换为小写
Liquid - Convert Array to Lowercase
我正在使用 Shopify 并想连接到客户标签,但它们区分大小写。所以 {% if customer.tags contains "wholesale" %}
与 {% if customer.tags contains "Wholesale" %}
不同。我的客户在应用标签时可能会或可能不会坚持一种情况,所以我想在将来防止这种情况。
我想要一个数组 customer.tags,并将所有值转换为小写。我正在尝试找出逻辑,但遇到了麻烦。
我想将 customer.tags 放入一个无效的新数组中。
{% assign newArray = customer.tags %}
{{ newArray }}
我做错了什么?
您可以为此使用 the downcase
filter:
{% 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 contains '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 filter:将数组转为字符串,用,
分隔
- Downcase filter: 使整个字符串小写
- Split filter:与join相反,根据join中使用的字符从字符串重新创建数组
,
我正在使用 Shopify 并想连接到客户标签,但它们区分大小写。所以 {% if customer.tags contains "wholesale" %}
与 {% if customer.tags contains "Wholesale" %}
不同。我的客户在应用标签时可能会或可能不会坚持一种情况,所以我想在将来防止这种情况。
我想要一个数组 customer.tags,并将所有值转换为小写。我正在尝试找出逻辑,但遇到了麻烦。
我想将 customer.tags 放入一个无效的新数组中。
{% assign newArray = customer.tags %}
{{ newArray }}
我做错了什么?
您可以为此使用 the downcase
filter:
{% 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 contains '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 filter:将数组转为字符串,用, 分隔
- Downcase filter: 使整个字符串小写
- Split filter:与join相反,根据join中使用的字符从字符串重新创建数组
,