我一直在試圖理解爲什麼在golang中使用validator.v2包時,爲什麼一些正則表達式給我一個錯誤「未知標籤」。它適用於一些正則表達式,但不適用於其中有「{}」的一些內容,並且當我使用validator.Validate()時,它在運行時會給我一個錯誤「unknown tag」。Go validator.v2給出正則表達式的錯誤「未知標籤」
下面的代碼:
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 .]*$"`
}
我使用大括號,因爲我想放在字符串上的長度限制。還有其他的方法可以做到這一點,但我覺得正則表達式是一種可行的方式,並且更容易與正則表達式中的其他規則一起使用。
另外,我試着逃避那個「。」。在正則表達式,它沒有給我錯誤「未知標籤」,但它只是繞過驗證。這可能是一個可能的錯誤。 GitHub [issue](https://github.com/go-validator/validator/issues/56) –
您是否嘗試過轉義{}? 'regexp =^[a-zA-Z。] \ {1,100 \} $' –
@LukasIsselbächer是的,轉義花括號並沒有幫助,它給出了同樣的錯誤。 –