JavaScript正则验证小数输入

5星 · 超过95%的资源 需积分: 5 4 下载量 8 浏览量 更新于2024-09-30 收藏 1KB TXT 举报
"正则表达式用于验证输入的小数是否合法,包括检查是否为非法数字、限制小数的位数以及数值范围。" 在给定的代码中,我们看到两个JavaScript函数,`checkNum()` 和 `check()`, 用于验证用户输入的数值是否符合特定规则。这两个函数都使用了正则表达式来实现这些验证。 1. `checkNum(obj)` 函数: 这个函数主要负责验证输入值是否为合法的小数或整数。它定义了一个正则表达式 `re`: ```javascript var re = /^-?[1-9]*(\.\d*)?$|^-?d^(\.\d*)?$/; ``` 这个正则表达式的含义是: - `^-?[1-9]*(\.\d*)?$`: 匹配可能带负号、不带小数点或者带有任意数量小数位的整数或小数。 - `^-?d^(\.\d*)?$`: 这部分似乎有误,`d^` 应该是 `\.?`,修正后表示匹配可能带负号和可选小数点但无整数部分的小数。 如果输入值不符合这个正则表达式并且 `isNaN(obj.value)`(即输入值不是数字),则会弹出警告提示“非法数字”,清空输入值并聚焦到输入框。 2. `check(obj)` 函数: 此函数除了验证数字格式外,还限制了数值的范围。正则表达式 `^(0|[1-9]+)\.\d{2}$`: - `^(0|[1-9]+)\.\d{2}$`: 匹配精确到两位小数的非负数,可以是0或者1-9开头的整数加小数点后两位数字。 如果输入值不符合这个正则表达式,将提示“只能输入两位小数,格式为0.00”。另外,通过 `if(obj.value<0.01||obj.value>10000000.00)` 条件判断,确保数值在0.01到10000000.00的范围内,否则显示相应错误信息。 3. 输入框处理: 另外,还有两种不同的输入框处理方式: - `onKeyUp="value=value.replace(/[^.0-9]/g,'')"`:当用户按键时,移除输入值中除数字、小数点之外的所有字符。 - `onChange="value=value.replace(/[^.0-9]/g,'')"`:当输入框失去焦点时,做同样的清理操作。 这些验证方法对于确保用户输入的数据格式正确和有效是非常重要的,尤其在金融或数据统计等对精度和范围有严格要求的场景中。通过正则表达式,我们可以有效地检测和过滤掉不符合要求的输入,提高系统的数据质量。