【问题标题】:Javascript: Validate a field: Not empty & only contains numbers [duplicate]Javascript:验证字段:不为空且仅包含数字[重复]
【发布时间】:2012-09-27 13:53:50
【问题描述】:

可能重复:
Validate numbers in JavaScript - IsNumeric()

您好,我正在尝试使用 javascript 验证字段以确保该字段不为空且仅包含数字

我正在使用 document.getElementById 来获取字段的值,然后使用这个函数来验证它:

function isNumeric(elem, message, messsage2)
{
   if(isNaN(elem))
   { 
    alert(message2); 
    return false; 
   }
   else if (elem == null || elem =="")
   {
    alert(message);
    return false;
   }
return true;
}

但是这个功能仍然允许我在应该有数字的地方输入字母

【问题讨论】:

  • 您认为您是 2012 年第一个尝试使用 javascript 验证号码的人吗? :) 见thisthis
  • 这两个帖子都在验证数字,我需要一个验证非空且仅数字的函数。

标签: javascript


【解决方案1】:
function isNonEmptyNumber (str) {
  if(!str.length) return false;
  var num = +str;
  return isFinite(num) && !isNaN(num);
}

【讨论】:

    【解决方案2】:

    使用正则表达式:

    value.match(/^\d+$/)
    

    【讨论】:

    • 这将无法匹配1.2-1 等数字。
    • 是的,但是你会得到像 +++++. 这样的误报
    猜你喜欢
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多