使用javascript确保电话号码的前三位数不是0

时间:2017-04-08 03:17:41

标签: javascript html forms validation

我正在尝试使用javascript验证电话号码,而我却陷入了这个部分

区号(999中的前3个数字)不能全为零(0)

我知道要制作哪种格式的代码(比如xxx-xxx-xxxx)但是如何确保前0不是全零呢?

感谢任何帮助,谢谢!!

4 个答案:

答案 0 :(得分:2)

您可以通过多种方式执行此操作,以下是使用不同方法的一些示例。

使用substr

 var num = "000-xxx-xxxx";
   var first_three = num.substr(0, 3);

   if (first_three === "000") {
        console.log("Number starts with 000");
   }

使用拆分

 var num = "000-xxx-xxxx";
 var first_three = num.split("-")[0];

 if (first_three === "000") {
      console.log("Number starts with 000");
 }

使用正则表达式

 var num = "000-xxx-xxxx";

 if (/^000/.test(num)) {
      console.log("Number starts with 000");
 }

答案 1 :(得分:0)

您可以使用parseInt,它会忽略字符串中第一个非数字字符后的所有内容:

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));

答案 2 :(得分:0)

您可以使用classtypename

答案 3 :(得分:0)

假设您正在使用正则表达式测试美国区号 /^[2-9][0-8][0-9]/来测试它们应该有效。 According to this。 Areacodes可以以2到9之间的数字开头,第二个数字可以是任意数字 除9以外的数字,最后一个数字可以是任意数字。

function hasValidAreaCode(num) {
  var stripped = num.replace(/\D/g, ''); // remove any no-numeric characters
  return /^[2-9][0-8][0-9]/.test(stripped);
}

互动示例:



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');
  }
 });

.valid, .invalid {
  color: #000;
}
.valid {
  color: green;
}
.invalid {
  color: red;
}

<label for="phonenumber">Please enter a phonenumber</label> <input id="phonenumber">
&#13;
&#13;
&#13;