FCC高級(jí)編程篇之Validate US Telephone Numbers

Validate US Telephone Numbers

Return true if the passed string is a valid US phone number.
The user may fill out the form field any way they choose as long as it is a valid US number. The following are examples of valid formats for US numbers (refer to the tests below for other variants):

555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555

For this challenge you will be presented with a string such as 800-692-7753 or 8oo-six427676;laskdjf. Your job is to validate or reject the US phone number based on any combination of the formats provided above. The area code is required. If the country code is provided, you must confirm that the country code is 1. Return true if the string is a valid US phone number; otherwise return false.
Here are some helpful links:

檢查傳入的字符串是否為美國(guó)電話(huà)號(hào)碼,并返回真假和媳。

由所給示例可以看出涵紊。美國(guó)電話(huà)一共分為3個(gè)部分:

  • 第一部分是可以沒(méi)有的國(guó)家代碼,固定為1
  • 第二部分是區(qū)號(hào)蛉签,長(zhǎng)度固定為3
  • 第三部分是電話(huà)號(hào)碼胡陪,長(zhǎng)度為7

對(duì)于電話(huà)號(hào)碼,用正則匹配是最簡(jiǎn)單的碍舍。

這里先匹配電話(huà)號(hào)碼柠座。

1.png

\d{7}能識(shí)別連續(xù)7位數(shù)的電話(huà)號(hào)碼,但示例中有分隔為3+4形式的號(hào)碼片橡,因而改寫(xiě)為符合3+4形式的正則妈经,這里暫且假定分隔符為1個(gè)空格。

2.png

\d{3} \d{4}能識(shí)別被空格分隔的7位電話(huà)號(hào)碼了,但還不夠吹泡,現(xiàn)在在加上沒(méi)有空格和有短橫線(xiàn)的情況录煤。

3.png

到這就已經(jīng)完成電話(huà)號(hào)碼了,接下來(lái)做區(qū)號(hào)荞胡。

區(qū)號(hào)有且只有3位數(shù)妈踊,但可能被()包裹著,與電話(huà)號(hào)碼間可能隔著空格泪漂、短橫線(xiàn)抑或什么都沒(méi)有廊营。這里先處理可能被()包裹的情況。

4.png

\(\d{3}\)匹配到了()以及里面的內(nèi)容萝勤,但有的區(qū)號(hào)并沒(méi)有被括號(hào)包裹露筒。在加上這種情況。

5.png

現(xiàn)在將區(qū)號(hào)和電話(huà)號(hào)碼連在一起敌卓。

6.png

行百里者半于九十慎式,這里已經(jīng)完成一半了,最后來(lái)考慮國(guó)家代碼的問(wèn)題趟径。

美國(guó)的國(guó)家代碼為1瘪吏,先考慮是否以1開(kāi)頭。

7.png

考慮開(kāi)頭的1不存在的情況蜗巧。

8.png

由示例得出國(guó)家代碼與區(qū)號(hào)之間可能有1個(gè)空格掌眠。

先是有空格的。

9.png

然后是沒(méi)有空格的幕屹。

10.png

現(xiàn)在匹配美國(guó)電話(huà)號(hào)碼的正則表達(dá)式已經(jīng)基本完成了蓝丙。再考慮下添加了非法字符的情況。上面的正則能匹配到前一部分是美國(guó)電話(huà)的號(hào)碼望拖,但不能避免末尾添加了其他字符的情況渺尘。

11.png

因此還需要加上末尾的判斷。

12.png

大功告成∷得簦現(xiàn)在編寫(xiě)函數(shù)來(lái)測(cè)試一下數(shù)據(jù)鸥跟。

function telephoneCheck(str) {
  return /^1? ?(\(\d{3}\)|\d{3})[ |-]?\d{3}[ |-]?\d{4}$/.test(str);
}

測(cè)試結(jié)果如下圖。

13.png

測(cè)試結(jié)果顯示編寫(xiě)的函數(shù)如期運(yùn)行像云,這樣FCC的高級(jí)算法第一題就完成了锌雀。

PS. 圖中所用正則測(cè)試工具為開(kāi)源中國(guó)的在線(xiàn)正則表達(dá)式測(cè)試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚂夕,一起剝皮案震驚了整個(gè)濱河市迅诬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婿牍,老刑警劉巖侈贷,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡俏蛮,警方通過(guò)查閱死者的電腦和手機(jī)撑蚌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搏屑,“玉大人争涌,你說(shuō)我怎么就攤上這事±绷担” “怎么了亮垫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)伟骨。 經(jīng)常有香客問(wèn)我饮潦,道長(zhǎng),這世上最難降的妖魔是什么携狭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任继蜡,我火速辦了婚禮,結(jié)果婚禮上逛腿,老公的妹妹穿的比我還像新娘稀并。我一直安慰自己,他們只是感情好单默,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布稻轨。 她就那樣靜靜地躺著,像睡著了一般雕凹。 火紅的嫁衣襯著肌膚如雪殴俱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,798評(píng)論 1 290
  • 那天枚抵,我揣著相機(jī)與錄音线欲,去河邊找鬼。 笑死汽摹,一個(gè)胖子當(dāng)著我的面吹牛李丰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逼泣,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趴泌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拉庶?” 一聲冷哼從身側(cè)響起嗜憔,我...
    開(kāi)封第一講書(shū)人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氏仗,沒(méi)想到半個(gè)月后吉捶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年呐舔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了币励。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡珊拼,死狀恐怖食呻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情澎现,我是刑警寧澤搁进,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站昔头,受9級(jí)特大地震影響饼问,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揭斧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一莱革、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讹开,春花似錦盅视、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至成艘,卻和暖如春赏半,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淆两。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工断箫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秋冰。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓仲义,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剑勾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子埃撵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 題目 Validate US Telephone Numbers如果傳入字符串是一個(gè)有效的美國(guó)電話(huà)號(hào)碼,則返回tr...
    delphuy閱讀 341評(píng)論 0 0
  • 初衷:看了很多視頻虽另、文章暂刘,最后卻通通忘記了,別人的知識(shí)依舊是別人的洲赵,自己卻什么都沒(méi)獲得鸳惯。此系列文章旨在加深自己的印...
    DCbryant閱讀 3,993評(píng)論 0 20
  • iOS中使用正則表達(dá)式就不得不提NSRegularExpression,所以我們需要先搞清楚什么是NSRegula...
    sunmumu1222閱讀 2,332評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理叠萍,服務(wù)發(fā)現(xiàn)芝发,斷路器,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,435評(píng)論 0 23