2013-03-07 78 views
2

我經常發現,用戶在註冊時輸入的格式非常差。我從Paypal IPN和其他支付網關獲得各種瘋狂​​的格式化,甚至從所有小寫字母到全部大寫字母,直到完全搞砸爲止。名稱修復/驗證?

我用這個信息做的一件事是發送電子郵件和提供問候,但我不喜歡格式不好的名字。以前有人想過這個,想出一個快樂的中路解決方案嗎?例如,我認識到簡單地糾正看起來似乎錯誤的拼寫形式將會是一種糟糕的形式,但至少應該修正「合理的內容」是明智的。至少是大寫字母。也許僅僅在第一個和最後一個姓名字符串中提供每個不同「單詞」的首字母就足夠了?

還是有更好的方法?也許是一個像「McBerry」和「van Buuren」這樣的通用名字大寫的數據庫?寶石還是一些這樣的工具?只是有點好奇。也許把這個想法放在這個話題上是愚蠢的,但我真的很喜歡在與用戶的交流中儘可能地保持禮貌和專業,而不像平常那​​樣使用格式不好的名字。

+1

不會有完美的解決方案,因爲我的姓可以證明。有些人是LaFortune ... – 2013-03-07 16:43:51

回答

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

+0

是的,這已經是我想到的了。只是希望有一些更具洞察力或更多的報道。 – ylluminate 2013-03-11 21:44:28