[RoR ] [函式分享] number_to_tw_phone

看板Ruby作者 (CFC)時間16年前 (2008/11/15 02:40), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
def number_to_tw_phone(phone, cellphone=false) raise "Phone number error!" if phone.size < 9 || phone.size > 10 || (phone.size < 10 if cellphone) no = phone.split("") return %{#{no[0..3].join}-#{no[4..6]}-#{no[7..9]}} if cellphone return %{(#{no[0..2].join})#{no[3..5]}-#{no[6..8].join}} if no[0..2].join == "089" # Tai-dong return %{(#{no[0..1].join})#{no[2..4]}-#{no[5..8].join}} if phone.size == 9 return %{(#{no[0..1].join})#{no[2..5]}-#{no[6..9].join}} if phone.size == 10 end puts number_to_tw_phone("0987654321", true) #=> 0987-654-321 puts number_to_tw_phone("0234567890") #=> (02)3456-7890 puts number_to_tw_phone("087654321") #=> (08)765-4321 puts number_to_tw_phone("089876543") #=> (089)876-543 #=> 這是台東 的電話 那天開發專案時寫的,有沒有什麼建議XD? Updated: 2008/11/21 今天更新了,我放在Github上面: http://github.com/cfc/taiwan_helpers/tree/master 請指教:) 謝謝 -- 南無喝囉怛那囉夜耶南無阿唎耶婆盧羯爍缽囉菩提薩埵婆耶摩訶薩埵婆耶摩訶迦盧尼 迦耶薩皤囉數怛那怛寫南無悉吉慄埵伊蒙阿唎耶盧吉帝室馱婆謹墀 醯利摩訶皤哆薩婆阿他豆輸朋阿逝孕婆薩哆摩婆薩哆那摩婆伽罰特豆怛姪他唵阿 婆盧盧迦帝迦羅帝夷醯摩訶菩提薩埵婆薩婆摩囉摩摩醯摩醯唎馱孕俱盧俱盧羯蒙 盧度盧罰闍耶摩訶罰闍耶帝陀囉陀囉室佛遮囉遮囉摩麼罰摩囉穆帝隸伊醯伊醯 室那室那阿囉佛囉舍利罰沙罰參囉舍耶呼嚧呼嚧摩囉呼嚧呼嚧醯利囉娑囉唎悉唎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.1.218

11/15 03:46, , 1F
區碼的部分有些縣市沒判斷到 FYI: http://is.gd/7wKg
11/15 03:46, 1F

11/15 03:46, , 2F
cell phone 應該都是09開頭
11/15 03:46, 2F

11/15 09:10, , 3F
請問為什麼不要直接對phone操作就好呢? 如:phone[0..3]
11/15 09:10, 3F

11/15 09:15, , 4F
還有區碼後的前三碼或前四碼取出後都不join?差別是??
11/15 09:15, 4F

11/15 19:39, , 5F
我後來有改過程式碼,這版本是整晚沒睡的情況下寫的XD
11/15 19:39, 5F

11/15 19:39, , 6F
區碼的部份我會再多處理,謝謝提供資料︿︿
11/15 19:39, 6F
※ 編輯: zusocfc 來自: 210.71.22.25 (11/21 20:27)
文章代碼(AID): #197SOIJ8 (Ruby)
文章代碼(AID): #197SOIJ8 (Ruby)