• 欢迎光临~

【JS】查验电话号码(fCC)

开发技术 开发技术 2022-11-20 次浏览

题目要求查验电话号码是否输入正确,总结来说,需要满足以下条件:

  1. 号码中的数字应该在10-13个之间
  2. 不包含()-以外的符号
  3. ()要完整
  4. 可以有空格
  5. 如果最前面加了国家编号,限定编号为1

 

 

关键点:

1 正则表达式

【JS】查验电话号码(fCC)

2. 字符串方法string.join('')

可以将.match()得到的数组转换回字符串。

3.可选链运算符(?.)

可选链运算符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。

 

【JS】查验电话号码(fCC)

添加?后,变成const strB = strNS.match(/[()]/g)?.join('');就不会报错了。

 

实现代码:

function telephoneCheck(str) {
  //排除str中的空格
  const strNS = str.match(/S/ig).join('');
  //str中的数字
  const allNum = str.match(/d/ig).join('');
  //排除str中的空格和()
  const strNSB = strNS.match(/-*d-*/g).join('');


  const strB = strNS.match(/[()]/g)?.join('');
  
  console.log(strB);
  console.log(strB === null );
  console.log(strNSB.match(/^1[1-9]{3}-*d{3}-*d{4}/g))


  if (strB ==='()'){
    if (allNum.length === 10) {
      return strNSB.match(/^[1-9]{3}-*d{3}-*d{4}/g) !== null;
    } else if (allNum.length === 11) {
      return strNSB.match(/^1[1-9]{3}-*d{3}-*d{4}/g) !== null;
    }else {
    return false;}
  } else if (strB === undefined) {
    if (allNum.length === 10) {
      return strNSB.match(/^[1-9]{3}-*d{3}-*d{4}/g) !== null;
    } else if (allNum.length === 11) {
      return strNSB.match(/^1[1-9]{3}-*d{3}-*d{4}/g) !== null;
    }else {
    return false;}
  } else {
    return false;
  }
}


console.log(telephoneCheck("-1 (757) 622-7382"));

 

 

程序员灯塔
转载请注明原文链接:【JS】查验电话号码(fCC)
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com