jsp 中 input框内 怎样用 正则表达式约束 框内只能输入固定位数的数字和一个小数点 如最大为 999999.99

我用了 onkeyup="value=value.replace(/[^\d.]/g,'')" 只能输入数字和小数点 但是不限制位数 帮忙写一个限制小数点前6位的的正则表达式
onkeyup="value=value.replace(/\d+\.?\d{0,2}/)" 这个限制了小数点后两位 但是前面没限制

第1个回答  2016-11-11
[\d]{6}\.?[\d]{2} 限制小数点前必须是6位 小数点后必须是2位的正则
(^[1-9]{1}[0-9]{0,5}\.\d{0,2}$)|(^[1-9]{1}[0-9]{0,5}$) 整数部分1-6位,小数部分只能为2位 若没有小数部分 整数最多6位
第2个回答  2016-11-10
js正则表达式 /^\d{1,6}(\.\d{1,2})?$/追问

我用
没用
onkeyup="value=value.match(/^\d{1,6}(\.\d{1,2})?$/) " >
封住汉字字母了 数字只能输一位然后就自动添加了个逗号

追答

如果你的输入框里可以输入汉字和英文字母,你只想把其中的数字替换成空,那么你用
js正则表达式 /\d{1,6}(\.\d{1,2})?/g 来替换掉数字.
而且你也不能在onkeyup 事件中来替换,因为那样就会输入一个字符判断一次,所以应该在提交前,或者光标移开此输入框后来替换.

本回答被提问者和网友采纳
第3个回答  2018-03-14
onkeyup="value=value.replace(/[^\d]+\./g,''); this.value=/^\d+\.?\d{0,2}$/.test(this.value) ? this.value : this.value.split('.')[1].length==2? this.value:this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1].substr(0,2);"
用正则控制input输入框中只能输入数字和小数点,并显示小数点后2位,超过两位输入不了
相似回答