codecamp

判断电话号码算法挑战

方法一:

function telephoneCheck(str) {
  // Good luck!
  var reg=/^(1\s?)?\(?\d{3}\)?(\s|-)?\d{3}(\s|-)?\d{4}/;   //正则规则

  
  var index1=str.indexOf("(");   
  var index2=str.indexOf(")");   //查询到两个括号

  
  if( (index1!=-1 && index2!=-1) || (index1==-1 && index2==-1) ){   //存在双括号或者没有括号
    if( index2!=index1 && index2-index1!=4 ){  //如果存在双括号,且序号间的字符有3个
      return false;
    }
    var str2=str.replace(/[\(\)\s-]/g,"");  //将括号和空格和“-”全局替换成空,便于统计数字长度
    if( str2.length==11 && str2.substr(0,1)!=1 ){
      return false;
    }

          
  }else{ 
      return false; 
  }

    
  return reg.test(str);  
}


telephoneCheck("27576227382");

方法二:

function telephoneCheck(str) {
  // Good luck!
  var arr = str.match(/1?\s?\d{3}[\s-]?\d{3}[\s-]?\d{4}|1?\s?\(\d{3}\)[\s-]?\d{3}[\s-]?\d{4}/);
  return arr!==null && arr[0].length === str.length;
}




telephoneCheck("555-555-5555");
高级脚本算法答案说明
集合交集算法挑战
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定