天天看點

input隻允許輸入數字,保留小數點,不能0開頭

<input type="text" value="" name="should_send_num" id="should_send_num" class="input-txt" οnkeyup="clearNoNum(this)" οnblur="clearNoNum(this)">

//系數
function clearNoNum(obj) {
	console.log(obj.value);
	
	//先把非數字的都替換掉,除了數字和.
	obj.value = obj.value.replace(/[^\d.]/g, "");
	//保證隻有出現一個.而沒有多個.
	obj.value = obj.value.replace(/\.{2,}/g, ".");
	//必須保證第一個為數字而不是.
	obj.value = obj.value.replace(/^\./g, "");
	//保證.隻出現一次,而不能出現兩次以上
	obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
	//隻能輸入兩個小數
	obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3');
	//如果沒有小數點,首位不能為類似于 01、02的金額  
	if (obj.value.indexOf(".") < 0 && obj.value != "") {
		obj.value = parseFloat(obj.value);
	}
	//如果第一位是0,第二位不是點,就用數字把點替換掉
	var len1 = obj.value.substr(0, 1);
	var len2 = obj.value.substr(1, 1);
	if (obj.value.length > 1 && len1 == 0 && len2 != ".") {
		obj.value = obj.value.substr(1, 1);
	}
}
           

js限制input隻能輸入有效的數字,有且隻有一個小數點,第一個不能為小數點

input隻允許輸入數字,并且小數點後保留4位