1. 程式人生 > >關於控制input輸入整數最多為6位,小數點最多為4位的方法

關於控制input輸入整數最多為6位,小數點最多為4位的方法

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用者註冊</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body class="login-body">
<input type="text" class="text-right number inputMust" onkeyup="value=value.replace(/^\d{1,8}.\d{3,4}$/g,'')"/>
<input type='text' onkeyup="formatMoneyWith6digts2(this)" />
</body>
<script>

function formatMoneyWith6digts2( obj ){
var e=obj.value;
if(String(e).indexOf('.')>-1){ //判斷有沒有輸入小數點

}else{
var p11 = /[^\d]/g;
var p22 = /(\d{6})\d*$/g;
var p44 = /(\d*)\6/g; //刪除當我輸入第七位的整數時候進行刪除
obj.value = obj.value.replace(p11, "").replace(p22, "$1").replace(p44,"$1$2");
}
var p1 = /[^\d\.]/g; // 過濾非數字及小數點 /g :所有範圍中過濾
var p2 = /(\.\d{4})\d*$/g;
var p4 = /(\.)(\d*)\1/g;
obj.value = obj.value.replace(p1, "").replace(p2, "$1").replace(p4,"$1$2");
obj.value=obj.value.replace(/[^0-9.]/g, '');
var p5 = /\.+/g; //多個點的話只取1個點,遮蔽1....234的情況
obj.value = obj.value.replace(p5, ".");
var p6 = /(\.+)(\d+)(\.+)/g; //遮蔽1....234.的情況
obj.value = obj.value.replace(p6, "$1$2")// 遮蔽最後一位的.
}
</script>
</html>