名称修复/验证?

时间:2013-03-07 14:59:32

标签: ruby-on-rails ruby ruby-on-rails-3 gem

我经常发现,用户在注册时输入格式很差的名字。我从Paypal IPN和其他支付网关获得各种疯狂​​的格式化,即使从小写到全部大写,也只是搞砸了。

我对这些信息做的一件事就是发送电子邮件并提供问候,但我不喜欢格式不佳的名字。有人曾经想过这个并想出一个快乐的中间道路解决方案吗?例如,我意识到简单地纠正看似错误的拼写将是不好的形式,但至少修复“什么是合理的”是明智的。至少是资本化。也许只是简单地将首字母和姓氏字符串中每个不同“单词”的首字母大写就足够了?

或者有更好的方法吗?也许是像“McBerry”和“van Buuren”这样的常用名称大写的数据库?宝石还是一些这样的工具?只是有点好奇。将这么多想法纳入这个主题可能是愚蠢的,但我真的希望在与用户的沟通中尽可能礼貌和专业,而不是像往常一样使用格式错误的名称。

1 个答案:

答案 0 :(得分:0)

你可以做的最好的事情是将他们的第一个/最后一个/中间名的第一个字母大写:

bob".capitalize => "Bob"

来自Ruby:

capitalize → new_str click to toggle source

Returns a copy of str with the first character converted to uppercase and the remainder to lowercase. Note: case conversion is effective only in ASCII region.

"hello".capitalize    #=> "Hello"
"HELLO".capitalize    #=> "Hello"
"123ABC".capitalize   #=> "123abc"

您还可以使用downcase来衡量所有内容,然后使用capitalize使其“正确”。

例如:

fName = "jIMMY"
lName = "sMITH"

fName.downcase
lName.downcase

fName.capitalize
lNmae.capitalize

puts fName + lName => Jimmy Smith

但是,对于像VanBuuren这样的名称,可能会有点困难。

这是一个Ruby字符串的链接,它有一些方法可以帮助你完成任务。

http://www.ruby-doc.org/core-2.0/String.html