当前位置:编程学习 > JS >>

js比较两个数值的大小不起作用的正确处理方法

js比较两个数值的大小

js比较两个数值的大小比较两个数值js 比较大小 
今天在做js判断两个值的问题的时候,发现了一个奇怪的现象:即两个数值之间单纯的居然出现不起作用的情况。
 
修改前相关js:

function  check(){  
var minNum = document.getElementById("minNum").value;  
var maxNum = document.getElementById("maxNum").value;  
var re = /^[1-9]+[0-9]*]*$/;  
  
if(minNum == ""){  
      alert("请输入最小张数!");  
      return false;  
}  
if(maxNum == ""){  
      alert("请输入最大张数!");  
      return false;  
}  
  
if ((minNum != "" && !re.test(minNum)) || (maxNum != "" && !re.test(maxNum)))     
{     
       alert("请输入正整数!");     
       return false;     
}     
if(maxNum < minNum){  
      alert("最小数不能大于最大数!");  
      return false;  
}  
      return true;  
}  
 
 后来查了相关的资料,才知道这样是有问题的,必须要用eval()函数来进行比较。网上对于eval的定义是:eval()函数用于在不引用任何特定对象的情况下计算代码字符串。
修改后的代码:

function  check(){  
var minNum = document.getElementById("minNum").value;  
var maxNum = document.getElementById("maxNum").value;  
var re = /^[1-9]+[0-9]*]*$/;  
  
if(minNum == ""){  
      alert("请输入最小张数!");  
      return false;  
}  
if(maxNum == ""){  
      alert("请输入最大张数!");  
      return false;  
}  
  
if ((minNum != "" && !re.test(minNum)) || (maxNum != "" && !re.test(maxNum)))     
{     
       alert("请输入正整数!");     
       return false;     
}     
if(<span style="color: #ff0000;">eval(</span>maxNum<span style="color: #ff0000;">)</span> < <span style="color: #ff0000;">eval(</span>minNum<span style="color: #ff0000;">)</span>){  
      alert("最小数不能大于最大数!");  
      return false;  
}  
      return true;  
}  
 
在此记录下来,给自己提个醒
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,