我一般会在 [any-rule](https://link.segmentfault.com/?enc=5VcysLmiXhGkf%2B176dEPzw%3D%3D.cxW4rR8DUd%2FRYjIcI88%2Fe1oqNVrQ3yqlNyAsvZcrLTcCeaRmHfOXNoPqO1j6mpf5) 或者 [i-hate-regex](https://link.segmentfault.com/?enc=Hbj7Ujn8akICFPKdKP6IvQ%3D%3D.3lQUvwuoJJL7xqjUDIgiFblBWaWDsXvcnl3bnORcZOBdDmvVgRZcjJnxy3EpfjvB) 里面找,找到了一个类似的稍微改了一下。 `/^([1-9]\d{0,}|0)(\.\d{1,2})?$/` const reg = /^([1-9]\d{0,}|0)(\.\d{1,2})?$/ const testCases1 = [0.1, 1, 1.0, 123, 1234, 12345.67, '123', '123.45'] console.log('正确用例', testCases1.map(v => reg.test(v))) // 正确用例 Array(8) [ true, true, true, true, true, true, true, true ] const testCases2 = [-0.99, -1, 0.123, '0123', '00.00', '123.45.67', '123,123', '123,123.45', {}, [], '', null] console.log('错误用例', testCases2.map(v => reg.test(v))) // 错误用例 Array(12) [ false, false, false, false, false, false, false, false, false, false, … ]