Ruby on rails 带有重音符号的字母表的正则表达式
我为名字和姓氏写了一个验证:Ruby on rails 带有重音符号的字母表的正则表达式,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我为名字和姓氏写了一个验证: validates(:name,, format: { with: /\A[a-zA-Z]+\z/}) 这只适用于字母表,但现在还需要使用重音字符对其进行扩展 可能的通行证情况: Mike Clark Chloé André Mike1 21Clark André3 Chloé# 可能的故障情况: Mike Clark Chloé André Mike1 21Clark André3 Chloé# 要像在正则表达式中那样添加所有字母范围太难了,幸运的
validates(:name,, format: { with: /\A[a-zA-Z]+\z/})
这只适用于字母表,但现在还需要使用重音字符对其进行扩展
- 可能的通行证情况:
Mike Clark Chloé André
Mike1 21Clark André3 Chloé#
- 可能的故障情况:
Mike Clark Chloé André
Mike1 21Clark André3 Chloé#
/\A[\p{L}\p{M}]+\z/
\p{L}
将匹配所有Unicode字母,\p{M}
将匹配所有变音符号
请参见演示此正则表达式如何工作的。以下是一个示例方法:
def checkName(name)
return /\A[\p{L}\p{M}]+\z/ =~ name ? true : false
end
有以前的ASCII-8重音字符,此regexp不处理这些字符。@mudasobwa:请提供此类字符串的示例。什么是ASCII-8重音字符?我说
\p{L}
匹配所有Unicode字母,它确实匹配。如果字符是预合成的,这就足够了。如果它们是多字节的,\p{M}
应该匹配变音符号。哦,对不起,我没有理由用方括号作为括号。请不要理会。谢谢@Wiktor。这真的很有帮助:)