正则表达式最多3个整数和2个小数

时间:2018-08-31 16:47:14

标签: javascript regex

我正在尝试构建一个正则表达式,该正则表达式最多接受3个整数和两个小数位

^\d{1,3}(\.\d{1,2})?

但是每当我在javascript上运行RegExp.test()时,都不会返回预期的结果

有效值之间应该类似

1, 5.9, 19, 34.23, 146, 345.2, 234.45,

无效值应类似于

12.345, 1267.23, 6578, 1.783

2 个答案:

答案 0 :(得分:2)

您只需要添加一个$即可将其标记为字符串的结尾,否则它将检测到一个类似于12.345的数字,因为12.34是有效数字,而它不会不要说string应该就此停止。

console.log("5.9: " + /^\d{1,3}(\.\d{1,2})?$/.test("5.9"));
console.log("19: " + /^\d{1,3}(\.\d{1,2})?$/.test("19"));
console.log("34.23: " + /^\d{1,3}(\.\d{1,2})?$/.test("34.23"));
console.log("1512.34: " + /^\d{1,3}(\.\d{1,2})?$/.test("1512.34"));
console.log("1.783: " + /^\d{1,3}(\.\d{1,2})?$/.test("1.783"));

答案 1 :(得分:1)

只需检查您的{1,2}小数点在数字的结尾处终止(使用$):

^\d{1,3}(\.\d{1,2})?$