JavaScript判断是否为数字的方法
在JavaScript中判断是否为数字有多种方式,下面来介绍几种比较常见的方法。
1. isNaN()函数
JavaScript中的isNaN()函数可以判断一个变量是否为NaN(Not a Number),如果是NaN则返回true,否则返回false。因为NaN不等于任何值,所以用isNaN()函数判断其是否为NaN。
如果要判断一个字符串是否是数字,需要先将字符串转为数字类型,再使用isNaN()函数判断。
示例代码如下:
var num1 = 123; var num2 = "abc"; console.log(isNaN(num1)); //false console.log(isNaN(num2)); //true var str = "456"; console.log(isNaN(parseInt(str))); //false
2. typeof操作符
JavaScript中的typeof操作符可以返回一个值的数据类型,对于数字类型,返回的是"number"。
因此可以使用typeof操作符判断一个值是否为数字。
示例代码如下:
var num1 = 123; var num2 = "abc"; console.log(typeof num1 == "number"); //true console.log(typeof num2 == "number"); //false
但需要注意的是,typeof操作符返回的数据类型有时会有误,如对于NaN、数组等,返回的也是"number"。
示例代码如下:
var num1 = NaN; var arr = [1, 2, 3]; console.log(typeof num1 == "number"); //true console.log(typeof arr == "number"); //false
3. 正则表达式
使用正则表达式可以判断一个字符串是否是数字。一般使用的是匹配正整数、负整数或浮点数的正则表达式。
示例代码如下:
var num1 = "123"; var num2 = "-456"; var num3 = "7.89"; var num4 = "abc"; var reg = /^(-|\+)?\d+(\.\d+)?$/; console.log(reg.test(num1)); //true console.log(reg.test(num2)); //true console.log(reg.test(num3)); //true console.log(reg.test(num4)); //false
正则表达式解释:
- ^ 表示字符串的开头
- (-|\+)? 表示一个可选的正号或负号
- \d+ 表示一个或多个数字
- (\.\d+)? 表示一个可选的小数部分,由小数点和一个或多个数字组成
- $ 表示字符串的结尾
4. jQuery的isNumeric()方法
jQuery提供了一个isNumeric()方法,可以判断一个值是否为数字类型。如果是数字类型,则返回true,否则返回false。
示例代码如下:
var num1 = 123; var num2 = "abc"; console.log($.isNumeric(num1)); //true console.log($.isNumeric(num2)); //false
需要注意的是,isNumeric()方法只能判断一个值是否为数字类型,如果要判断一个字符串是否为数字类型,需要先将字符串转为数字类型,再使用isNumeric()方法判断。
示例代码如下:
var str = "456"; console.log($.isNumeric(parseInt(str))); //true
5. parseInt()函数
使用parseInt()函数可以将一个字符串转为整数类型,如果字符串中包含非数字字符,则会返回NaN。
因此可以使用isNaN()函数判断转换后的值是否为NaN,从而判断字符串是否为数字。
示例代码如下:
var num1 = "123"; var num2 = "abc"; console.log(isNaN(parseInt(num1))); //false console.log(isNaN(parseInt(num2))); //true
需要注意的是,parseInt()函数只能转换整数类型的字符串,如果字符串中包含小数点,则只会转换小数点前面的整数部分。
示例代码如下:
var num1 = "123.45"; console.log(parseInt(num1)); //123
总结
以上就是JavaScript判断是否为数字的一些常见方法,每种方法都有其各自的特点和适用范围。在使用时应根据实际情况选择合适的方法来判断是否为数字。
