【发布时间】:2023-03-25 02:08:01
【问题描述】:
我一直试图理解为什么在 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 .]*$"`
}
我使用大括号是因为我想对字符串进行长度限制。可能还有其他方法可以做到这一点,但我觉得正则表达式是要走的路,并且更容易将它与表达式中的其他规则一起使用。
【问题讨论】:
-
另外,我尝试转义那个“。”在正则表达式中,它没有给我错误“未知标签”,但它只是绕过了验证。这可能是一个可能的错误。 GitHubissue
-
您是否尝试过转义 {}?
regexp=^[a-zA-Z .]\{1,100\}$ -
@LukasIsselbächer 是的,转义大括号没有帮助,它给出了同样的错误。
标签: regex validation go