regex - Go validator.v2 为正则表达式给出错误 "unknown tag"

标签 regex validation go

我一直在努力理解为什么一些正则表达式在使用 validator.v2 时给我一个错误“Unknown tag”在 golang 中打包。它适用于某些正则表达式,但不适用于其中包含“{}”的某些正则表达式,并且当我使用 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 .]*$"` 
}

我使用大括号是因为我想对字符串施加长度限制。可能有其他方法可以做到这一点,但我觉得正则表达式是可行的方法,并且更容易将它与表达式中的其他规则一起使用。

最佳答案

问题似乎是第一个正则表达式中的 , 字符。在验证器中可以看到source code标记在 , 上拆分。通过 UTSLing,我发现标签中不支持转义逗号;这可能是项目作者的疏忽。我建议提交错误/功能请求。

关于regex - Go validator.v2 为正则表达式给出错误 "unknown tag",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45113907/

相关文章:

json - Golang - 零值字节数组

go - 将字符串解析为特定类型的 int(int8、int16、int32、int64)

go - go语言读取并合并两个yaml文件

regex - 如何提取已经与多行模式匹配的文本?

javascript - 用于将电子邮件列表拆分为基本组件的 RegExp (JavaScript)

python - 如何在 Python 的列表理解中使用正则表达式?

regex - 具有拉丁字符的 Golang 正则表达式边界

ruby-on-rails - Rails,可以从模型中验证创建记录的用户是管理员吗?

validation - Knockout JS + 部分 View 和验证?

javascript - 在输入时验证 html 文本输入