工作中碰到这样一个问题:在页面上有一个输入框供用户输入,当用户输入了数字后需要对这个数字进行一下比较,刚开始并没有想到使用javascript进行两个数字比较时会出点小问题。
示例:
在页面上有一个输入框:
<input id="inputPageNumber" type="text" onkeypress="if(event.keyCode==13){changePage();return false;};"/>
用户在输入框输入内容后按回车,即会调用一个changePage()方法,这个方法在最开始先要做一些检测如用户输入的内容是否是数字等,同时也要对用户输入的内容与某个数字进行比较
function changePage(){
var totalPages = 2000; //基数,测试使用。用来做比较
//获取用户输入的内容
var inputNumber = document.getElementById("inputPageNumber").value;
//正则表达式
var isNumber = /\d/;
var objExp=new RegExp(isNumber);
//验证用户输入的内容是否为数字
if(objExp.test(inputNumber)==true){
//验证用户输入的数字是否大于基数,或者小于1
if(inputNumber > totalPages || inputNumber < 1 ) {
alert("输入的页数不合法!");
return false;
}
注意看红色部分if(inputNumber > totalPages || inputNumber < 1 ) 在这里我刚开始是直接进行比较,后来发现如果用户输入的是以大于2开头的数字,则inputNumber > totalPages会为true,这样一来就达不到我想要的效果,经过上网搜索发现有很多人遇到同样的问题,当前也有很多的解决方案,最后我通过试验采用如下的方式即可以解决此问题,特此记下一笔
关键字代码:
var inputNumber = parseInt(inputNumber); //使用parseInt函数进行数字转换,有点像Java里的强转
经过强转后的数字就可以直接使用比较符合进行比较了。
同理如果是float类型数字,则可以使用parseFloat();函数进行转换。
本文介绍了一个JavaScript中常见的数字比较问题,特别是当用户输入数字并与预设数值进行比较时可能出现的问题。文章提供了一种简单有效的方法来解决这一问题,即使用parseInt()函数将字符串转换为整数。
3397

被折叠的 条评论
为什么被折叠?



