javascript
var reg = /^[0-9]+(.[0-9]{1,2})?$/;
var str = "12.34";
if (reg.test(str)) {
console.log("输入正确");
} else {
console.log("输入错误");
}
这是一个正则表达式,用于匹配数字,可能有一个或没有一个小数部分。让我们逐一解析这个正则表达式的各个部分:
-
^
: 这是一个开始锚点,确保匹配从字符串的开始位置开始。 -
[0-9]+
:这部分匹配一个或多个数字(从0到9)。 -
(.[0-9]{1,2})?
: 这部分是一个可选的小数部分。-
\.
: 匹配一个小数点。 -
[0-9]{1,2}
: 匹配1或2个数字。 -
?
: 这表示前面的部分(即小数部分)是可选的。
-
-
$
: 这是一个结束锚点,确保匹配到字符串的结束位置。
- 所以,这个正则表达式可以匹配以下内容:
- 一个整数,例如 "123"
- 一个带有两位小数的数字,例如 "123.45"
- 一个带有一位小数的数字,例如 "123.6"
但这个正则表达式不会匹配带有超过两位小数的数字,例如 "123.456"。
总结一下,这个正则表达式用于匹配一个整数或一个小数,小数部分最多有两位。
ps:如果你希望匹配以非零数字开头、可以为0开头以小数结尾的数字,并保留两位小数,可以使用以下正则表达式:
const regex = /^(?!0$)\d*(\.\d{1,2})?$/;
这个正则表达式可以满足以下条件:
匹配以非零数字开头的数字。
数字可以是整数,也可以包含最多两位小数。
数字可以以0开头,但不能仅为0。
解释如下:
^
:表示匹配字符串的开头。
(?!0$)
:使用否定预查来排除仅为0的情况。
\d*
:匹配0个或多个数字,用于处理整数部分。
(\.\d{1,2})?
:这是一个可选的非捕获组,用于处理小数部分。它包括以下内容:
\.
:匹配小数点字符。
\d{1,2}
:匹配1到2个数字,用于匹配小数部分的精度。
$
:表示匹配字符串的结尾。
使用这个正则表达式,你可以验证一个字符串是否满足以下规则:
字符串表示以非零数字开头的数字。
数字可以是整数或带有最多两位小数的浮点数。
数字可以以0开头,但不能仅为0。
请注意,这个正则表达式只能验证字符串的格式是否符合要求,而不能验证其数值范围。如果你需要验证数值范围,可能需要结合其他代码逻辑进行处理。