验证负数

时间:2015-07-20 14:43:37

标签: javascript

我希望制作一个能够验证该字段的新功能但允许负数以及正数例如= / - 999.99。有人会有一个快速简便的解决方案。感谢

function validateNumber(thenumber){
    try{
        validnumbers = "0123456789.,";
    valid = false;
    for(i=0;i<thenumber.length;i++){
       if (validnumbers.indexOf(thenumber.charAt(i)) == -1)
       {
          valid = false;
          break;
       }
       else
          valid = true;
    }
    return valid;
    }catch(e){}
   }

5 个答案:

答案 0 :(得分:7)

这个简单的功能怎么样?

function validateNumber(thenumber)
{
    thenumber = thenumber.replace(".", "").replace(",", ".");

    return !isNaN(thenumber);
}

Fiddle

该函数删除点,然后用点替换逗号。然后它使用带有否定的isNaN来返回它是否有效。如果thenumber字符串,您可能需要添加一项检查,以防止运行时错误。

答案 1 :(得分:2)

使用isNaN

function validateNumber(thenumber){
    return !isNaN(thenumber);
   }
对于正数和负数,

isNaN将返回false

答案 2 :(得分:1)

我认为更好的方法是使用常规表达式: search()方法使用表达式来搜索匹配,并返回匹配的位置(在其他情况下返回-1)。这是一个例子:

public function validNumber(number)
{
    return number.search("^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$") > 0;
}

答案 3 :(得分:0)

试试这个:

function isNumber(value) {
  value = value.replace(',', '.');
  return !isNaN(value);
}

function isNegative(value) {
  return (isNumber(value) && value<0);
}

function isPositive(value) {
  return (isNumber(value) && value>0);
}

和奖金(:

function isNumberWithDots(value) {
  value = value.split(',').join('').split('.').join('');
  return !isNaN(value);
}

答案 4 :(得分:0)

试试这个表达式:

(number < 0)

首先尝试将左侧转换为数字值,然后通过JavaScript进行评估。

更多细节可以在这里找到:

Javascript negative number

相反,这个表达式:

(number > 0)

将以相同的方式由JavaScript进行评估。