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

Check only numbers used in input field

我在验证函数中有一个简单的 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;
}

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

您可以使用 .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>

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 returns 一个 true 或 false 值所以这可以成为你的旗帜return。

RegExp.test(str) 文档

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

演示: http://jsfiddle.net/SeanWessell/1v6vnath/