js 数字格式化,只能输入正负整数,小数
1、只能输入正整数
<input name="columnValue" class="input96 required" type="text" size="50" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"/>
2、可输入正负数和小数,并限制多少位小数(四舍五入)
js:
function NumberCheck(num,len) { //得到第一个字符是否为负号 var t = num.charAt(0); //先把非数字的都替换掉,除了数字和. num = num.replace(/[^\d\.]/g,''); //必须保证第一个为数字而不是. num = num.replace(/^\./g,''); //保证只有出现一个.而没有多个. num = num.replace(/\.{2,}/g,'.'); //保证.只出现一次,而不能出现两次以上 num = num.replace('.','$#$').replace(/\./g,'').replace('$#$','.'); //保留小数 if(len < 0) len = 0; num = Number(num).toFixed(len); //如果第一位是负号,则允许添加 if(t == '-'){ num = '-'+num; } return num; }
jsp:
<s:elseif test="'整数'==dataType"> <input name="columnValue" class="input96 required" type="text" size="50" onblur="this.value=NumberCheck(this.value,0)"/> </s:elseif> <s:elseif test="'小数'==dataType"> <input name="columnValue" class="input96 required" type="text" size="50" onblur="this.value=NumberCheck(this.value,4)" /> </s:elseif>