ruby-on-rails - 带重音字母的正则表达式

标签 ruby-on-rails ruby regex

我编写了名字和姓氏的验证:

validates(:name,, format: { with: /\A[a-zA-Z]+\z/})

这仅适用于字母表,但现在还需要使用重音字符来扩展它。

  • 可能的通行证场景:

    Mike
    Clark
    Chloé
    André
    
  • 可能的失败场景:

    Mike1
    21Clark
    André3
    Chloé#
    

最佳答案

像在正则表达式中那样添加所有字母范围太困难了,幸运的是,这没有必要,因为 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

关于ruby-on-rails - 带重音字母的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35341450/

相关文章:

ruby-on-rails - 我应该在哪里存储方法以使它们对我的应用程序和 RSpec 都可用?

ruby-on-rails - 如何在不发送 Ruby 的情况下检查电子邮件是否存在?使用 email_veracity_checker

ruby-on-rails - TestMailer 的参数数量错误

ruby-on-rails - Ruby on Rails 的授权模型

ruby - 如何在测试单元中获取当前测试用例名称?

ruby-on-rails - Rails 远程真实表单 Controller 不响应 json

javascript - 检查用户名中包含的特定密码文本模式以进行 javascript 表单验证

c# - 正则表达式仅用于数字加上 'h' 字符

c - C语言中匹配IP地址的最佳正则表达式或技术是什么

ruby - 您如何设置 Rack::URLMap 以在 Sinatra 中使用 RSpec?