
只能輸入整數:
<input type="text" name="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onpaste="this.value=this.value.replace(/\D/g,'')" />
只能輸入數字,包括小數點:
<input type="text" name="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" />
註解:
這裏的正則用處是輸入的值不是數字就替換為空。
引用
onkeyup 事件會在鍵盤按鍵被鬆開時發生,onpaste 是粘貼觸發
引用
replace() 方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串
引用
\D:類似[ ^0-9 ] 非數字 g :全局匹配
控制input只能輸入數字和兩位小數
<input type="text" name="je" onkeyup="clearNum(this)" />
function clearNum(obj){
obj.value = obj.value.replace(/[^\d.]/g,""); //清除"數字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //驗證第一個字符是數字
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一個, 清除多餘的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能輸入兩個小數
if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似於 01、02的金額
if(obj.value.substr(0,1) == '0' && obj.value.length == 2){
obj.value= parseFloat(obj.value);
}
}
}