验证数据输入javascript

时间:2014-11-27 13:35:50

标签: javascript validating

我一直在寻找验证数据输入以检查它是整数还是字符串。我环顾四周,看到了一些建议和typeof建议,但似乎没有任何效果。

var nam = prompt("Enter name:")
     person.push(nam);
 var mk1 = prompt("Enter mark 1:");
    var mk1 = parseInt(mk1);
    mark1.push(mk1);

6 个答案:

答案 0 :(得分:0)

使用===运算符,如下所示

if (mk1  === parseInt(mk1 , 10))
    alert("mk1 is integer")
else
    alert("mk1 is not an integer. May be String")

如果你不知道参数是一个数字 -

function isInt(n){
    return Number(n)===n && n%1===0;
}

答案 1 :(得分:0)

如果要检查输入字符串是否不是数字,请尝试:

if (isNaN(parseInt(name, 10)) {
    //name is String
} else {
    //name is Number
}

答案 2 :(得分:0)

尝试这种方式来查找输入类型;

if(!isNaN(parseInt(mk1))) 
  // for integer
else if(!isNaN(parseFloat(mk1)))
 //for float
else
 // String

答案 3 :(得分:0)

当您prompt()用户提供数据时,您always get a string。如果你想检查它是否实际只包含一个数字,你可以试试这个:

var value = prompt('...'),
    num = parseInt(value, 10);
if (num == value) {
    // ... it is an integer, use `num`
} else {
    // ... it's not an integer (or not *just* an integer), use `value`
}

(或使用parseFloat(value)表示实数)。

答案 4 :(得分:0)

很难说你到底想要做什么。你似乎两次声明var mk1,看起来有点奇怪。此外,即使parseInt失败(然后返回NaN [Not a Number]),您也将它添加到mark1,这可能不是您想要的。看看这个:

var nam = prompt("Enter name:")
person.push(nam);

var mk1 = prompt("Enter mark 1:");
mk1 = parseInt(mk1);
if (Number.isNaN(mk1) === false) {
   mark1.push(mk1);
} else {
    alert("mark 1 is not a number");
}

答案 5 :(得分:0)

使用此功能: isNaN(parseInt函数(MK1))

它将返回" true"如果不是数字," false"如果是一个数字