我一直试图理解为什么一些正则表达式在golang中使用validator.v2包时会给出错误“未知标记”。它适用于一些正则表达式,但不适用于其中包含“{}”的一些,当我使用validator.Validate()时,它在运行时给出了一个错误“未知标记”。
以下是代码:
type Company struct {
Name string `validate:"regexp=^[a-zA-Z .]{1,100}$"`
}
在运行时给出了以下错误:
Name: unknown tag
然而这个正则表达式完全正常
type Company struct {
Name string `validate:"regexp=^[a-zA-Z .]*$"`
}
我正在使用大括号,因为我想在字符串上加上长度限制。可能有其他方法可以做到,但我觉得正则表达式是要走的路,并且更容易将其与表达式中的其他规则一起使用。
答案 0 :(得分:1)
问题似乎是第一个正则表达式中的,
字符。您可以在验证程序source code中看到标记已在,
上拆分。通过UTSLing,我看不到对标签中转义的逗号的支持;这可能是项目作者的疏忽。我建议提交错误/功能请求。