使用JavaScript比较用户输入的内容大小

工作中碰到这样一个问题:在页面上有一个输入框供用户输入,当用户输入了数字后需要对这个数字进行一下比较,刚开始并没有想到使用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,工作,正则表达式)