【问题标题】:JS How to validate a mobile phone numberJS如何验证手机号码
【发布时间】:2018-12-22 13:27:12
【问题描述】:

我是编码新手,已收到此问题;

创建一个接收手机号码字符串的函数。如果号码是有效的英国号码,则返回 true,否则返回 false。

有效的手机号码可以以“07”开头,后跟 9 位数字。 它也可以以“+447”开头,后跟 9 个数字。 它也可以以“00447”开头,后跟 9 个数字。 其他任何内容均无效。

这是我创建的代码;

function validMobileNumber(num) {
    if (num.length != 9) 
    {
        return false
    }
    if (num.length = 9 && num.includes(07, 0) && num.includes(+447, 0) && num.includes(00447, 0)) {
        return true
    }
}

我的代码将针对此运行;

describe("validMobileNumber", () => {
    it("returns false when passed a string of the wrong length", () => {
        expect(validMobileNumber("123")).to.equal(false);
        expect(validMobileNumber("0750617250638")).to.equal(false);
        expect(validMobileNumber("+447712368768724988")).to.equal(false);
    });
    it("returns true when passed a valid plain phone num string", () => {
        expect(validMobileNumber("07506172506")).to.equal(true);
    });
    it("returns true when passed a valid string with a + prefix", () => {
        expect(validMobileNumber("+447506172506")).to.equal(true);
    });
    it("returns true when passed a valid international phone num", () => {
        expect(validMobileNumber("00447506172506")).to.equal(true);
    });
    it("returns false when passed a string with invalid chars", () => {
        expect(validMobileNumber("07506189foo")).to.equal(false);
    });
    it("returns true when passed random other valid phone numbers", () => {
        expect(validMobileNumber("00447555123456")).to.equal(true);
        expect(validMobileNumber("+447676111222")).to.equal(true);
        expect(validMobileNumber("07898888643")).to.equal(true);
        expect(validMobileNumber("07766555432")).to.equal(true);
        expect(validMobileNumber("07989765490")).to.equal(true);
    });
    it("returns false when passed random other invalid phone numbers", () => {
        expect(validMobileNumber("004475551&&&23456")).to.equal(false);
        expect(validMobileNumber("-447676111222")).to.equal(false);
        expect(validMobileNumber("09898888643")).to.equal(false);
        expect(validMobileNumber("+449166555432")).to.equal(false);
        expect(validMobileNumber("00448989765493")).to.equal(false);
        expect(validMobileNumber("cats")).to.equal(false);
    });
}); 

有人对如何让我的代码正常运行有任何建议吗?

【问题讨论】:

    标签: javascript numbers include


    【解决方案1】:

    您也可以使用正则表达式。正则表达式。 {Regex Tutorial}

    我很无聊,所以写给你。

    validMobileNumber("123"); //.to.equal(false);
    validMobileNumber("0750617250638"); //.to.equal(false);
    validMobileNumber("+447712368768724988"); //.to.equal(false);
    
    validMobileNumber("07506172506"); //.to.equal(true);
    
    validMobileNumber("+447506172506"); //.to.equal(true);
    
    validMobileNumber("00447506172506"); //.to.equal(true);
    
    validMobileNumber("07506189foo"); //.to.equal(false);
    validMobileNumber("00447555123456"); //.to.equal(true);
    validMobileNumber("+447676111222"); //.to.equal(true);
    validMobileNumber("07898888643"); //.to.equal(true);
    validMobileNumber("07766555432"); //.to.equal(true);
    validMobileNumber("07989765490"); //.to.equal(true);
    
    validMobileNumber("004475551&&&23456"); //.to.equal(false);
    validMobileNumber("-447676111222"); //.to.equal(false);
    validMobileNumber("09898888643"); //.to.equal(false);
    validMobileNumber("+449166555432"); //.to.equal(false);
    validMobileNumber("cats"); //.to.equal(false);
    
    
    function validMobileNumber(number) {
      let regex = /((07)|((\+|00)447)){1}[0-9]{9}\b/,
      result = regex.test(number);
      console.log(number, result);
      return result;
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 2013-07-01
      相关资源
      最近更新 更多