Validate US Telephone Numbers FreeCodeCamp

function telephoneCheck(str) {
  // 祝你好运
  //var re = /^1? ?(\(\d{3}\)|\d{3})[ |-]?\d{3}[ |-]?\d{4}$/;
  //var flag = re.test(str);  
  //return flag;
  return /^1? ?(\(\d{3}\)|\d{3})[ |-]?\d{3}[ |-]?\d{4}$/.test(str);
}

题目:

  如果传入字符串是一个有效的美国电话号码,则返回 true.

  

  telephoneCheck("555-555-5555")应该返回一个布尔值.
  telephoneCheck("1 555-555-5555")应该返回 true.
  telephoneCheck("1 (555) 555-5555") 应该返回 true.
     telephoneCheck("5555555555") 应该返回 true.
  telephoneCheck("555-555-5555")应该返回 true.
     telephoneCheck("(555)555-5555")应该返回 true.
   telephoneCheck("1(555)555-5555")应该返回 true.
   telephoneCheck("1 555)555-5555")应该返回 false.
   telephoneCheck("1 555 555 5555")应该返回 true.
   telephoneCheck("1 456 789 4444")应该返回 true.
   telephoneCheck("123**&!!asdf#")应该返回 false.
   telephoneCheck("55555555") 应该返回 false.
   telephoneCheck("(6505552368)")应该返回 false
   telephoneCheck("2 (757) 622-7382") 应该返回 false.
   telephoneCheck("0 (757) 622-7382") 应该返回 false.
 
分析:
  RegExp
 
  ?限定前面一个字符有一个或多个。
 
   | 表示或者,通常用括号括起来(前面|后面的内容),表示这是一个部分,
    只有一个字符的时候也可以用[]括起来。[]表示一个字符集。
 
  {阿拉伯数字} 表示前面的限定内容出现的次数。
 
  \d 限定阿拉伯数字。
 
  ^ 匹配字符串的开头什么都没有那一部分空白符  紧跟",又不是字符串的可见的一部分。
 
  $匹配字符串的结尾什么都没有的那一部分空白符, 在"前面又不是字符串的可见的一部分。
 
  RegExp.prototype.test()  
    概述:方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
posted @ 2018-03-26 10:04  有你~你是美好滴  阅读(142)  评论(0编辑  收藏  举报