我经常发现,用户在注册时输入格式很差的名字。我从Paypal IPN和其他支付网关获得各种疯狂的格式化,即使从小写到全部大写,也只是搞砸了。
我对这些信息做的一件事就是发送电子邮件并提供问候,但我不喜欢格式不佳的名字。有人曾经想过这个并想出一个快乐的中间道路解决方案吗?例如,我意识到简单地纠正看似错误的拼写将是不好的形式,但至少修复“什么是合理的”是明智的。至少是资本化。也许只是简单地将首字母和姓氏字符串中每个不同“单词”的首字母大写就足够了?
或者有更好的方法吗?也许是像“McBerry”和“van Buuren”这样的常用名称大写的数据库?宝石还是一些这样的工具?只是有点好奇。将这么多想法纳入这个主题可能是愚蠢的,但我真的希望在与用户的沟通中尽可能礼貌和专业,而不是像往常一样使用格式错误的名称。
答案 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字符串的链接,它有一些方法可以帮助你完成任务。