Rails 如何用 validates 加 validates_with 验证新浪微博昵称格式:4-24 位字符,支持中文、英文、数字、“-”、“_”

freshlhy · 2013年06月23日 · 最后由 freshlhy 回复于 2013年06月23日 · 8792 次阅读

或者只用 validates_with,还有更好的方法没?

正则的话 /\A[\p{Han}\p{Alnum}\-_]{4,24}\z/ 就行了, 但是渣浪验证的长度是转码成 gb18030 后的字节数而不是字符数...

validates :weibo_nick, length: {
  maximum: 24,
  tokenizer: lambda{|s| s.encode('gb18030').bytes }
}
需要 登录 后方可回复, 如果你还没有账号请 注册新账号