JS限制小数点前几位后几位

做到一个记账项目,需要限制输入数字满足小数点前只能输入9位,小数点后面只能输入2位,在网上找了一些代码,发现用不了,然后自己瞎想了一个。楼主不会正则,只能用这种笨办法了。代码如下,已作备注。

//		//存在小数点
//		obj输入框对象
		if(obj.value.indexOf(".") >= 0) {//判断是否有小数点
			 var cursurPosition=0;//光标位置
			 if(obj.selectionStart){//非IE浏览器
			 	 cursurPosition= obj.selectionStart;
			 }else{//IE浏览器
			 	 try{
	                var range = document.selection.createRange();
	                range.moveStart("character",-obj.value.length);
	                cursurPosition=range.text.length;
	                }catch(e){
	                 cursurPosition = 0;
	                }
			 }
			 console.log("光标位置:"+cursurPosition+"-----小数点位置"+obj.value.indexOf("."));
			 if(cursurPosition<=obj.value.indexOf(".")){//当光标位置小于或者等于小数点位置,说明光标在整数部分
			 	//小数点前9位
				if(obj.value.substring(0, obj.value.indexOf(".")).length>= 9) {
					return false;
				}
			 }else{//当光标大于小数点位置,说明在小数点部分
			 	//小数点后两位
				if(obj.value.substring(obj.value.indexOf(".") + 1, obj.value.length).length >= 2) {
						return false;
					}
			 }
		}
		//不存在小数点
		if(obj.value.indexOf(".") < 0) {
			if(obj.value.length>=9){
				return false;
			}
		}

猜你喜欢

转载自blog.csdn.net/QiZi_Zpl/article/details/77774534