Hugo中如何检查输入字符串非空?多种尝试方法无效
Hugo 非空字符串检查问题解决
你遇到的情况大概率是变量$foo并非严格意义上的空字符串,或是模板渲染时被解析成了特殊值(比如空白字符、未正确初始化的nil值)。以下是几种更可靠的检查方式:
结合
trim和len过滤空白字符:如果$foo可能包含空格、换行等无效空白内容,先清理再判断长度:{{ if and $foo (gt (len (trim $foo "")) 0) }} <!-- 显示内容 --> {{ end }}严格匹配空字符串+检查变量存在性:确保变量已定义且确实不等于空字符串(以页面参数为例,其他变量替换对应获取方式):
{{ if and (isset .Params "foo") (ne .Params.foo "") }} <!-- 显示内容 --> {{ end }}使用
with语句简化判断:with会自动判断变量是否存在且非空,同时将上下文切换到该变量:{{ with $foo }} <!-- 显示内容 --> <!-- 此处可用`.`指代$foo --> {{ end }}
另外也可以检查下你传入foo=""的方式是否正确,比如在Front Matter中定义时,有没有多打空格或引号格式错误的问题。
内容的提问来源于stack exchange,提问作者Mig82
相关产品推荐
相关产品推荐

