我只需要使用正则表达式来验证数字,以允许最多仅12个小数位和最多2个浮点数。在这里,浮点也是可选的。我已经有一个表达式可以验证其他一些条件。

onkeyup="this.value=this.value.replace(/[^\.\d]/g,'');"


我还需要修改上面的表达式以验证我的新要求。我的尝试如下。

onkeyup="this.value=this.value.replace(/[^\.\d{1,12}{0,2}]/g,'');"


但这没有用。抱歉,我对正则表达式有一点了解。那么有人可以帮助我建立这一纠正的问题吗?

最佳答案

这可能是您要查找的正则表达式:



const regex = /^\d{1,12}(?:\.\d{1,2})?$/;
console.log('123456789012.123', regex.test('123456789012.123'));
console.log('123456789012.12', regex.test('123456789012.12'));
console.log('123456789012.1', regex.test('123456789012.1'));
console.log('123456789012.', regex.test('123456789012.'));
console.log('123456789012', regex.test('123456789012'));
console.log('12345678901', regex.test('12345678901'));

09-16 20:41