怎样使输入框内只能输入固定位数的有效数字 <input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'')">只能保证输入的数字,如何使得输入的小数位数是固定的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').substr(0,(value.indexOf('.')==-1?value.length:(value.indexOf('.')+3)))">需要保留几位就在 value.indexOf('.')+3 修改数字即可3为保留2位,保留4位数字改成5,以此类推已测试成功 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>小数验证</title> <script> String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2); //g全局 } /*** * 此验证方法很简单,但设计也很巧妙。使用的是我们常用split、array、substring等 * @author hoojo * @param o 验证的对象,即当前文本域 * @param precision 精确多少位小数 * @version 1.0 **/ function checkFloat(o, precision) { var val = o.value;//验证小数 if (parseFloat(val) != val) { var ar = val.split(''); for(var i = 0; i < ar.length; i++) { var charCode = ar[i].charCodeAt(0); if (charCode > 57 || charCode < 46 || charCode == 47) { o.value = val.replaceAll(ar[i], ''); } /*var j = val.indexOf('.'); if (j != -1) { o.value = val.substring(0, val.lastIndexOf('.')); }*/ } } var ary = o.value.split('.'); if (ary.length >= 2) { if (ary[0] == "") { ary[0] = 0; } var temp = ary[1]; if (ary[1].length > precision) { ary[1] = ary[1].substring(0, precision); } o.value = ary[0] + "." + ary[1]; } } </script> </head> <body> <input type=text value="" onkeyup="checkFloat(this, 4)"/> </body> </html> 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/IBM_hoojo/archive/2010/06/24/5691695.aspx参考:http://blog.csdn.net/IBM_hoojo/archive/2010/07/01/5707588.aspx <input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').replace(/\.(\d*\.)/ig,'$1'); if(value.indexOf('.')>0) value = value.substring(0,value.indexOf('.')+3)" onchange="fun(this)"><!-- replace(/[^\d\.]/ig,'') 将非数字或"."去掉 replace(/\.(\d*\.)/ig,'$1') 只保留最后一个"." if(value.indexOf('.')>0) value = value.substring(0,value.indexOf('.')+3) 如果有".","."后保留2位(想要保留几位就是value.indexOf('.')+ (n+1))--> 哦,最后那个 onchange="fun(this)" 应该删掉,忘了…… :P 那就更简单了<input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').replace(/\.(\d*\.)/ig,'$1'); if(value.indexOf('.')>0 && value.length - value.indexOf('.') > 2) value = parseFloat(value).toFixed(2)"><!-- replace(/[^\d\.]/ig,'') 将非数字或"."去掉 replace(/\.(\d*\.)/ig,'$1') 只保留最后一个"." if(value.indexOf('.')>0 && value.length - value.indexOf('.') > 2) value = parseFloat(value).toFixed(2) 如果有".",且"."后位数>2位,则保留2位小数(想要保留几位就是value.toFixed(n),还有 value.length - value.indexOf('.') > n)--> 关于jquery移除静态事件。。。。。。。。。。。在线求解! JS内嵌PHP问题 请问如何在innerHTML里面输入一段js脚本? 怎么求 getElementsByTagName() 的长度? js treeview document.write型网页转换 javascript 监听ie地址栏的地址变化 要想有滚动条是不是只能靠iframe? 同样的脚本功能为什么Vbscript就不能实现 在线请教return问题,希望各位师兄弟多赐教 一个简单的计算脚本,求高手指教 在web页面javascript如何获取response,request对象?
<input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').substr(0,(value.indexOf('.')==-1?value.length:(value.indexOf('.')+3)))">需要保留几位就在 value.indexOf('.')+3 修改数字即可3为保留2位,保留4位数字改成5,以此类推
已测试成功
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>小数验证</title>
<script>
String.prototype.replaceAll = function(s1, s2) {
return this.replace(new RegExp(s1, "gm"), s2); //g全局
}
/***
* 此验证方法很简单,但设计也很巧妙。使用的是我们常用split、array、substring等
* @author hoojo
* @param o 验证的对象,即当前文本域
* @param precision 精确多少位小数
* @version 1.0
**/
function checkFloat(o, precision) {
var val = o.value;//验证小数
if (parseFloat(val) != val) {
var ar = val.split('');
for(var i = 0; i < ar.length; i++) {
var charCode = ar[i].charCodeAt(0);
if (charCode > 57 || charCode < 46 || charCode == 47) {
o.value = val.replaceAll(ar[i], '');
}
/*var j = val.indexOf('.');
if (j != -1) {
o.value = val.substring(0, val.lastIndexOf('.'));
}*/
}
}
var ary = o.value.split('.');
if (ary.length >= 2) {
if (ary[0] == "") {
ary[0] = 0;
}
var temp = ary[1];
if (ary[1].length > precision) {
ary[1] = ary[1].substring(0, precision);
}
o.value = ary[0] + "." + ary[1];
}
}
</script>
</head>
<body>
<input type=text value="" onkeyup="checkFloat(this, 4)"/>
</body>
</html> 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/IBM_hoojo/archive/2010/06/24/5691695.aspx参考:http://blog.csdn.net/IBM_hoojo/archive/2010/07/01/5707588.aspx
<input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').replace(/\.(\d*\.)/ig,'$1'); if(value.indexOf('.')>0) value = value.substring(0,value.indexOf('.')+3)" onchange="fun(this)">
<!--
replace(/[^\d\.]/ig,'') 将非数字或"."去掉
replace(/\.(\d*\.)/ig,'$1') 只保留最后一个"."
if(value.indexOf('.')>0) value = value.substring(0,value.indexOf('.')+3) 如果有".","."后保留2位(想要保留几位就是value.indexOf('.')+ (n+1))
-->
那就更简单了<input type="text" onkeyup="value=value.replace(/[^\d\.]/ig,'').replace(/\.(\d*\.)/ig,'$1'); if(value.indexOf('.')>0 && value.length - value.indexOf('.') > 2) value = parseFloat(value).toFixed(2)">
<!--
replace(/[^\d\.]/ig,'') 将非数字或"."去掉
replace(/\.(\d*\.)/ig,'$1') 只保留最后一个"."
if(value.indexOf('.')>0 && value.length - value.indexOf('.') > 2) value = parseFloat(value).toFixed(2)
如果有".",且"."后位数>2位,则保留2位小数(想要保留几位就是value.toFixed(n),还有 value.length - value.indexOf('.') > n)
-->