此问题已在此处有答案:
How do I test a WHOLE string against regex in ruby?(3个答案)
Regex for Comma delimited list(12个答案)
2天前关闭。
我需要对一串像"en,es,fr"
这样的语言环境进行验证,但我找不到使其工作的方法。
我试过这个,但它不起作用:
validates :languages, format: {with: /[a-zA-Z](2)(,[a-zA-Z]{2})?/ }
有人可以帮助我的正则表达式或可以提出任何建议?
编辑:谢谢大家,最后我用自定义验证解决了这个问题。
validate :validate_locales
def validate_locales
array_locales = languages.split(",")
array_locales.each do |locale|
locations = locale.split("-")
locations.each do |location|
if location.size == 2
true
else
errors.add(:languages, "is invalid")
end
end
end
end
1条答案
按热度按时间blmhpbnm1#
正则表达式检查字符串是否由逗号分隔的两个小写字母的区域设置代码组成。
验证:语言,格式:{ with:/\A([a-z]{2},)*[a-z]{2}\z/i }
查看regex101中的正则表达式