我为名字和姓氏写了一个验证:
validates(:name,, format: { with: /\A[a-zA-Z]+\z/})
这仅适用于字母,但现在也需要用重音字符扩展它。
可能的传递方案:
Mike
Clark
Chloé
André
可能的失败情况:
Mike1
21Clark
André3
Chloé#
答案 0 :(得分:3)
在正则表达式中添加所有字母范围会非常困难,幸运的是,由于Ruby正则表达式具有用于匹配所有Unicode字母的Unicode类别类,所以没有必要。
您可以使用
/\A[\p{L}\p{M}]+\z/
\p{L}
将匹配所有Unicode字母,\p{M}
将匹配所有变音符号。
请参阅IDEONE demo,了解此正则表达式的工作原理。这是一个示例方法:
def checkName(name)
return /\A[\p{L}\p{M}]+\z/ =~ name ? true : false
end