仅检查输入字段中使用的数字

时间:2015-12-01 15:31:40

标签: javascript jquery regex input phone-number

我在验证函数中有一个简单的if语句,用于检查字段中是否使用了至少10个数字

function verfiyFields() {
    var flag = true;

    var number = $atj('#interested-number-form');


    if(number.val().replace(/\s+/g, '').length < 10){
        number.parent().prepend('<p class="form-error">Please enter phone number</p>');
        fadeOut();
        flag = false;
    }

    return flag;
}

我怎样才能检查是否只使用了数字。

2 个答案:

答案 0 :(得分:3)

您可以使用.match(/^\d+$/)检查是否只有数字。

var value = number.val().replace(/\s+/g, '');
if (value.length >= 10 && value.match(/^\d+$/)) {
  // ..
}

您还可以使用正则表达式/^\d{10,}$/检查是否至少有10位数,并避免检查length属性:

var value = number.val().replace(/\s+/g, '')
if (value.match(/^\d{10,}$/)) {
  // ..
}

作为旁注,您还可以使用pattern attribute

<form>
  <input type="text" pattern="^\d{10,}$" />
  <input type="submit" />
</form>

答案 1 :(得分:0)

function verfiyFields() {
  var reg = /^\D*(?:\d\D*){10}$/;
  var number = $atj('#interested-number-form');

  var flag = reg.test(number.val())

  if (!(flag)) {
    number.parent().append('<p class="form-error">Please enter a valid 10 digit phone number</p>');
  }

  return flag;
}

使用RegExp.test(str)检查以确保排除所有不是数字的字符的字段长度为10. RegExp.test返回true或false值,因此这可以是您返回的标志。

RegExp.test(str)文档

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

<强> 演示: http://jsfiddle.net/SeanWessell/1v6vnath/