
判断电话号码算法挑战
方法一:
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");