Javascript 验证负数

Javascript 验证负数,javascript,Javascript,我正在寻找一个新的功能,将验证字段,但允许负数以及正数,例如=/-999.99。任何人都会有一个快速简单的解决方案。谢谢 function validateNumber(thenumber){ try{ validnumbers = "0123456789.,"; valid = false; for(i=0;i<thenumber.length;i++){ if (validnumbers.indexOf(thenumber.char

我正在寻找一个新的功能,将验证字段,但允许负数以及正数,例如=/-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){}
   }
函数validateEnumber(编号){
试一试{
validNumber=“0123456789.,”;
有效=错误;

对于(i=0;i这个简单函数怎么样

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

    return !isNaN(thenumber);
}

该函数删除点,然后用点替换逗号。然后用带否定的形式返回其是否有效。您可能需要添加一个检查编号是否为字符串,以防止运行时出错。

使用
isNaN

function validateNumber(thenumber){
    return !isNaN(thenumber);
   }
isNaN
对于正数和负数都将返回false

请尝试以下操作:

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);
}
尝试以下表达式:

(number < 0)
(number > 0)

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

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

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

您最好使用一个RegExp,那么
Math.abs()
对于
“负数和正数”将返回
true
。我相信您的
isNumber
函数可能返回错误的值。例如:如果您尝试检查
12.123,12
,它将变成
12.123.12
,并且
isNumber
将返回false。这是可以的,但事实上数字是有效的,对吗?当然12.123.12不是数字,12.12312是数字。添加函数作为奖励:)@DontVoteMeDown,从什么时候起,
12.123,12
12.123.12
是有效数字?@Jongware,没有。你试过吗?我有过parseInt真的需要吗?或者在某些边缘情况下它会导致意外结果吗?我有一个问题:为什么这
!isNaN(parseInt(“13.12313123dasd.asd1”))
的计算结果为
?他还想验证正数。@topcat3,为什么会有尖刻的评论?如果答案不符合您的需要,请解释原因。@DontVotemown没有尖刻的评论。非常感谢您的帮助。
public function validNumber(number)
{
    return number.search("^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$") > 0;
}