2

我经常发现,用户在注册时输入的名称格式很差。我从 Paypal IPN 和其他支付网关获得各种疯狂​​的格式,甚至从所有小写字母到所有大写字母,甚至完全搞砸了。

我对这些信息所做的一件事是发送电子邮件并提供问候,但我不喜欢格式不正确的名称。以前有人想过这个问题并想出一个快乐的中间道路解决方案吗?例如,我意识到简单地纠正看似错误的拼写是一种糟糕的形式,但至少修正“合理的”是明智的。至少是大写。也许简单地将名字和姓氏字符串中每个不同“单词”的第一个字母向上转换就足够了?

或者有没有更好的方法?也许是“McBerry”和“van Buuren”之类的常用名称大写数据库?宝石或类似的工具?只是有点好奇。也许在这个话题上花这么多心思是愚蠢的,但我真的很喜欢在与用户交流时尽可能礼貌和专业,而不是像往常一样使用格式不正确的名称。

4

1 回答 1

0

您可以希望做的最好的事情是将他们的名字/姓氏/中间名的第一个字母大写:

"bob".capitalize => "Bob"

来自红宝石:

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

于 2013-03-07T16:33:54.087 回答