make sure first three digits of phone number are not 0's, using javascript
我正在尝试使用 javascript 验证电话号码,但我被困在这部分
区号(999中的前3位数字)不能全为零(0)的
我知道生成我想要的任何格式的代码(比如 xxx-xxx-xxxx),但是我如何确保第一个 0 不是全为零?
感谢任何帮助,谢谢!
您可以通过多种方式做到这一点,这里有几个使用不同方法的示例。
使用startsWith
1 2 3 4 5 | var num ="000-xxx-xxxx"; if (num.startsWith("000") === true) { console.log("Number starts with 000"); } |
使用 substr
1 2 3 4 5 6 | var num ="000-xxx-xxxx"; var first_three = num.substr(0, 3); if (first_three ==="000") { console.log("Number starts with 000"); } |
使用拆分
1 2 3 4 5 6 | var num ="000-xxx-xxxx"; var first_three = num.split("-")[0]; if (first_three ==="000") { console.log("Number starts with 000"); } |
使用正则表达式
1 2 3 4 5 | var num ="000-xxx-xxxx"; if (/^000/.test(num)) { console.log("Number starts with 000"); } |
假设您正在测试美国区号,使用正则表达式
这。
区号可以以 2 到 9 之间的数字开头,第二个数字可以是任何
除 9 以外的数字,最后一个数字可以是任意数字。
1 2 3 4 | function hasValidAreaCode(num) { var stripped = num.replace(/\\D/g, ''); // remove any no-numeric characters return /^[2-9][0-8][0-9]/.test(stripped); } |
交互示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function hasValidAreaCode(num) { var stripped = num.replace(/\\D/g, ''); // remove any no-numeric characters return /^[2-9][0-8][0-9]/.test(stripped); } var elPhonenumber = document.getElementById('phonenumber'); elPhonenumber.addEventListener('keyup', function (event) { var v = elPhonenumber.value; if (v.replace(/\\D/g, '').length > 2) { var valid = hasValidAreaCode(v); if (valid) { elPhonenumber.classList.add('valid'); elPhonenumber.classList.remove('invalid'); } else { elPhonenumber.classList.remove('valid'); elPhonenumber.classList.add('invalid'); } } else { elPhonenumber.classList.remove('valid', 'invalid'); } }); |
1 2 3 4 5 6 7 8 9 | .valid, .invalid { color: #000; } .valid { color: green; } .invalid { color: red; } |
1 | <label for="phonenumber">Please enter a phonenumber</label> <input id="phonenumber"> |
您可以使用
你可以使用
1 2 3 4 5 6 7 8 9 | var phone1 = '000-555-4444'; var phone2 = '555-555-5555'; function isValidAreaCode(phoneNumber) { return parseInt(phoneNumber, 10) > 0; } console.log(phone1, 'valid?', isValidAreaCode(phone1)); console.log(phone2, 'valid?', isValidAreaCode(phone2)); |