需要的结果
内容编辑可以在Shopify中输入十六进制值作为背景色。如何用Liquid模板的控制流程检查给定的输入是否是有效的十六进制?
需要实现的regex。
^#(?:[0-9a-fA-F]{3}){1,2}$
需要添加的Liquid代码段:
<div class="a-module" style="background-color: {{ bg_color }};">
...
</div>
变量 bg_color
只能是包括英镑在内的十六进制。#
字符。
以上如何用regex实现?
还有其他解决方案吗?
如果这不可能,还有什么其他方法可以在液体模板中匹配字符串?
研究一下
我找不到太多关于液体模板中的regex。
有这样一个问题。在Liquid模板中匹配标签的Regex:"> "在html标签内。
但我不明白如何实现。
Shopify liquid中没有regex,所以没有办法通过这种方式来检查。
一个更好的方法将是使用其中的一个 滤色镜.
你可以做这样的事情。
{% assign is_color = bg_color | color_to_rgb %}
{% if is_color %}
It's color
{% endif %}
如果颜色有效,它将返回一个rgb输出,但如果无效,它将返回一个 null
结果使变量为false。
如果你真的需要使用regex,唯一的选择就是依靠Javascript,在DOM准备好后再处理。
那就创建自己的过滤器吧。而在这个过滤器中检查十六进制。
/^#[0-9a-f]{3,6}$/igm
https:/github.comShopifyliquidwikiLiquid-for-Programmers#creat-your-own-filters。