如何使用javascript检查var是字符串还是数字

时间:2011-07-23 10:43:10

标签: javascript typeof

我有一个变量var number="1234",虽然这个数字是一个数值但是在""之间,所以当我使用typeofNaN检查时,我得到了它作为一个字符串。

function test()
{
    var number="1234"

if(typeof(number)=="string")
{
    alert("string");
}
if(typeof(number)=="number")
{
    alert("number");
}

}

我总是alert("string"),请您告诉我如何检查这是否是一个数字?

6 个答案:

答案 0 :(得分:7)

据我所知,您的问题是要求进行测试 检测字符串是否表示数值。

快速测试应

function test() {
   var number="1234"
   return (number==Number(number))?"number":"string"
}

作为Number,如果在没有new关键字的情况下调用,则将字符串转换为数字。 如果变量内容未被触及(==将数值转换回字符串) 你正在处理一个数字。否则就是一个字符串。

function isNumeric(value) {
   return (value==Number(value))?"number":"string"
}

/* tests evaluating true */
console.log(isNumeric("1234"));  //integer
console.log(isNumeric("1.234")); // float
console.log(isNumeric("12.34e+1")); // scientific notation
console.log(isNumeric(12));     // Integer
console.log(isNumeric(12.7));   // Float
console.log(isNumeric("0x12")); // hex number

/* tests evaluating false */
console.log(isNumeric("1234e"));
console.log(isNumeric("1,234"));
console.log(isNumeric("12.34b+1"));
console.log(isNumeric("x"));

答案 1 :(得分:5)

该行

 var number = "1234";

创建一个值为“1234”的新String对象。通过将值放在引号中,您说它是一个字符串。

如果要检查字符串是否只包含数字,可以使用regular expressions

if (number.match(/^-?\d+$/)) {
    alert("It's a whole number!");
} else if (number.match(/^-?\d+*\.\d+$/)) {
    alert("It's a decimal number!");
}

模式/^\d+$/表示:在字符串的开头(^),有一个可选的减号(-?),然后是一个数字(\d) ,后跟任何更多的数字(+),然后是字符串的结尾($)。另一种模式只是在数字组之间寻找一个点。

答案 2 :(得分:2)

答案 3 :(得分:0)

因为var number="1234"是一个字符串。双引号使它成为文字。

如果你想要一个数字就像这样使用它

var number = 1234;

更新

如果你从输入标签获取输入,例如,dataType将是字符串,如果你想将它转换为数字,你可以使用parseInt()函数

var number = "1234";

var newNumber = parseInt(number);

alert(typeof newNumber); // will result in string

答案 4 :(得分:0)

将其转换为数字,然后将其与原始字符串进行比较。

if ( parseFloat(the_string,10) == the_string ) {
    // It is a string containing a number (and only a number)
}

答案 5 :(得分:0)

另一种简单方法:

var num_value = +value;
if(value !== '' && !isNaN(num_value)) {
    // the string contains (is) a number
}