在网上查到有两种辨别字符串是否为数字的方法:
1.function checkInput()
{
var inputValue= document.getElementById("inputValue").value;
var patrn=/^\d*$/; //JS中关于数字的正则
if(!patrn.test(inputValue))//判断输入是否是数字
{
alert("请正确输入,只能为数字!");
return false;
}
return true;
}
2.JS自带的isNaN()方法
但是如果要检查字符串是否为能运算的数字时,两种方法都有一定的缺点:
方法1是运用正则表达式判断,虽然能判断是否为数字,但是对于负数,小数则无法判断;
方法2是JS自带的一个判断是否为数字的方法,能判断负数,小数,但是对特定的数字如"5-3","9-1",仍然判断为数字;
所以我结合两种方法的特点写下如下方法来判断符串是否为数字的:
//check num
function checknum(str){
var re=/^\d*$/;
if(!re.test(str)){
if(str.substring(0,1)=="-"){
var temp = String(str).substring(1);
if(!re.test(temp)){
if(isNaN(str)){
return "内容必须是数字,请重新输入\n";
}else{
return "";
}
}else{
return "";
}
}else{
if(isNaN(str)){
return "内容必须是数字,请重新输入\n";
}else{
return "";
}
}
}else{
return "";
}
}
如有不对,请多提点.