FreeCodeCamp筆記之:Validate US Telephone Numbers

題目

Validate US Telephone Numbers
如果傳入字符串是一個有效的美國電話號碼,則返回true.
用戶可以在表單中填入一個任意有效美國電話號碼. 下面是一些有效號碼的例子(還有下面測試時用到的一些變體寫法):
555-555-5555
(555)555-5555
(555) 555-5555
555555 5555
5555555555
1 555 555 5555
在本節(jié)中你會看見如
800-692-7753
or8oo-six427676;
laskdjf
這樣的字符串. 你的任務(wù)就是驗證前面給出的字符串是否是有效的美國電話號碼. 區(qū)號是必須有的. 如果字符串中給出了國家代碼, 你必須驗證其是1. 如果號碼有效就返回true; 否則返回false.
當(dāng)你遇到困難的時候,記得查看錯誤提示、閱讀文檔、搜索、提問。
這是一些對你有幫助的資源: RegExp

telephoneCheck("555-555-5555") 應(yīng)該返回一個布爾值.
telephoneCheck("1 555-555-5555") 應(yīng)該返回 true.
telephoneCheck("1 (555) 555-5555") 應(yīng)該返回 true.
telephoneCheck("5555555555") 應(yīng)該返回 true.
telephoneCheck("555-555-5555") 應(yīng)該返回 true.
telephoneCheck("(555)555-5555") 應(yīng)該返回 true.
telephoneCheck("1(555)555-5555") 應(yīng)該返回 true.
telephoneCheck("1 555)555-5555") 應(yīng)該返回 false.
telephoneCheck("1 555 555 5555") 應(yīng)該返回 true.
telephoneCheck("1 456 789 4444") 應(yīng)該返回 true.
telephoneCheck("123**&!!asdf#") 應(yīng)該返回 false.
telephoneCheck("55555555") 應(yīng)該返回 false.
telephoneCheck("(6505552368)") 應(yīng)該返回 false
telephoneCheck("2 (757) 622-7382") 應(yīng)該返回 false.
telephoneCheck("0 (757) 622-7382") 應(yīng)該返回 false.
telephoneCheck("-1 (757) 622-7382") 應(yīng)該返回 false
telephoneCheck("2 757 622-7382") 應(yīng)該返回 false.
telephoneCheck("10 (757) 622-7382") 應(yīng)該返回 false.
telephoneCheck("27576227382") 應(yīng)該返回 false.
telephoneCheck("(275)76227382") 應(yīng)該返回 false.
telephoneCheck("2(757)6227382") 應(yīng)該返回 false.
telephoneCheck("2(757)622-7382") 應(yīng)該返回 false.
telephoneCheck("555)-555-5555") 應(yīng)該返回 false.
telephoneCheck("(555-555-5555") 應(yīng)該返回 false.

思路

  1. 初看題目嚇?biāo)缹殞毩?,這么多種情況;
  2. 應(yīng)該是用正則表達式一種一種的配唄,要細心,慢慢來;
  3. 號碼分析,正確號碼應(yīng)該是分3段:
    3.1 第一段為國家代碼,固定為1位,切數(shù)字為1開頭,可能存在空格,或者不是1 的情況;
    3.2 第二段為區(qū)號,固定3位,可能沒有括號,也可能有括號;
    3.3 第三段為號碼,固定7位,變化很多,有直接7位,也有 3位+(空格、短線)+4位,還有存在其他非法字符、大于7位的情況;
  4. 三段中間可能存在空格、短劃線,也可能沒有;
  5. 寫的時候找到一個在線測試正則表達式的:工具;
  6. 在查看 RegExp 的定義的時候,發(fā)現(xiàn)了.test() 的方法,可以用來測試某個字符串是否符合正則表達式,本題正好用上;

解答

function telephoneCheck(str) {
  // 祝你好運
    return /^1? ?(\d{3}|\(\d{3}\))[ |-]?\d{3}[ |-]?\d{4}$/.test(str);
}
telephoneCheck("555-555-5555");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 要求 如果傳入字符串是一個有效的美國電話號碼,則返回true. 下面是一些有效號碼的例子(還有下面測試時用到的一些...
    Oracle_c113閱讀 317評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • Validate US Telephone Numbers Return true if the passed s...
    橙子_1259閱讀 417評論 0 1
  • 在使用第三方庫Masonry的過程中,遇到過各種各樣的坑,以下就把筆者使用過程中的問題總結(jié)如下: 控件必須要添加到...
    小碼農(nóng)_gjw閱讀 504評論 0 2
  • 當(dāng)夜醒來 輕輕地嘆了一口氣 給自己 施上霧色的薄妝 綴上露珠的耳環(huán) 描上彎月的眉線 在寂寞的肩頭,掛上柔風(fēng)的披肩 ...
    李唐的小詩閱讀 401評論 4 5

友情鏈接更多精彩內(nèi)容