我有一個Message.uuid場,我要添加驗證的,其中包括:Rails驗證使用正則表達式驗證字符串?
支持:
- 包括AZ,az,中間0-9
- 破折號,但從來沒有開始或結束在一個短跑。
- 至少5%,不超過500個字符
什麼是軌道寫這些規則模型驗證的最好方法?
感謝
UPDATE:
validates :uuid,
:length => { :within => 5..500 },
:format => { :with => /[A-Za-z\d][-A-Za-z\d]{3,498}[A-Za-z\d]/ }
有了這個失敗
您需要在'^'和'$'之間固定正則表達式,或者像'「@%#@#$ AAAAA @#%@#$」'這樣的東西纔會通過。 – meagar
你也應該限制'format'驗證器的範圍;您目前試圖驗證長度兩次,而像AAA這樣的UUID會導致兩個錯誤:一個是關於長度,另一個是關於格式。您可能只希望它導致「長度」錯誤。 – meagar