js 正则表达式校验数字,确保它是一个不可以是0,但可以是以0开头的小数,可以是带小数点的正数,或者是一个带小数点的正数且小数点后最多保留两位
时间: 2024-09-20 10:16:03 浏览: 70
利用js正则表达式校验正数、负数、和小数
在JavaScript中,你可以使用正则表达式来验证这样的数字格式。下面是一个匹配规则的例子:
```javascript
const regex = /^(?!0\.0+$)\d+(\.\d{1,2})?$/;
```
这个正则表达式的解释如下:
- `^` 表示字符串的开始
- `(?!0\.0+)$` 是一个否定前瞻断言,确保小数部分不全是0(即不是只包含0的小数)
- `\d+` 匹配一或多个数字(整数部分)
- `(\.\d{1,2})?` 是一个可选组,`\.` 匹配点号,`\d{1,2}` 匹配一到两个数字(小数部分,最多保留两位)
- `$` 表示字符串的结束
你可以通过`test()`函数来检查一个给定的字符串是否符合这个模式:
```javascript
function validateNumber(str) {
return regex.test(str);
}
// 测试例子
console.log(validateNumber("0")); // false
console.log(validateNumber("0.0")); // false
console.log(validateNumber("0.12")); // true
console.log(validateNumber("123.456")); // false (超过两位小数)
console.log(validateNumber("123.45")); // true
```
阅读全文