对于编码,我是个新手;
创建一个将接收手机号码字符串的函数。如果该号码是有效的英国号码,则应返回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);
});
});
有人对如何使我的代码正常运行有何建议?
答案 0 :(得分: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;
}