JS正则匹配大于0最多两位小数

502 阅读1分钟

前言

网上看了好些个正则,在匹配大于0最多几位小数时,往往'0.00'都会为true,包括chatGPT返回的结果。

正则匹配大于0最多两位小数

const reg = /^(([1-9]\d*(\.\d{1,2})?)|(0\.(([1-9]\d?)|(\d[1-9]))))$/

reg.test('0.00')
// false

reg.test('0.01')
// true

reg.test('1.01')
// true

reg.test('11.10')
// true

reg.test('11.11')
// true

// 如果想要匹配类型 0.0100000
const reg2 = /^(([1-9]\d*(\.\d{1,2})?)|(0\.(([1-9]\d?)|(\d[1-9]))))0*$/

reg2.test('0.01000')
// true