This question already has answers here:
Matching exact string with JavaScript
                                
                                    (4个答案)
                                
                        
                                去年关闭。
            
                    
我正在尝试构建一个正则表达式,该正则表达式最多接受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

最佳答案

您只需要添加一个$来将其标记为字符串的结尾,否则它将检测到类似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"));

关于javascript - 最多3个整数和2个小数的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52119739/

10-12 22:27