在jquery里,我们可以用下面这些方法来判断变量是否是数字:
1、$.isNumeric();
jquery里内置的一个用来判断是否为数字的函数,用$.isNumeric()来判断是否为数字的话,一些特殊的字符会被当成8进制或12进制的数字,判定为true,如:(相关课程推荐:jQuery教程)$.isNumeric(0xFF); //true
$.isNumeric("0xFF"); //true$.isNumeric(3.13); //true
$.isNumeric("3.13"); //true
$.isNumeric(-3.13); //true
$.isNumeric("-3.13"); //true
$.isNumeric("03.13"); //true
$.isNumeric(01); //true
$.isNumeric(001); //true
$.isNumeric(+3.13); //true
$.isNumeric(0xFF); //true
$.isNumeric("0xFF"); //true
$.isNumeric(true); //false
$.isNumeric(NaN); //false
2、isNaN();
js里的一个用来判断是否为数字的函数,它的意思是“not a number”,即“判断是否不是个数字,不是数字则为true,是数字则为false”,它的缺点就是一些值为空的变量,如null,空格等,会把它们转成“0”当成数字来处理:var val=$("#test").val();
var ival=parseInt(val);//如果变量val是字符类型的数则转换为int类型 如果不是则ival为NaN
alert(typeof(ival));
if(!isNaN(ival)){
alert(val +"是数字");
} else{
alert(val +"不是数字");
}
说明: isNaN()函数,如果传入的参数是数字返回false,否则返回true
3、使用正则表达式判断
常用正则:"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(" //浮点数
实例:var r=/^\+?[1-9][0-9]*$/; //判断是否为正整数
r.test(str);
或者:function isNumber(value) { //验证是否为数字
var patrn=/^(-)?\d+(\.\d+)?$/;
if (patrn.exec(value)==null || value=="") {
return false
} else {
return true
}
}