正则表达式匹配数字与最多2位小数

Cra*_*aig 9 javascript regex

我正在使用一个正则表达式,它将数值与最多用户定义的小数位数相匹配.目前我有

/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/
Run Code Online (Sandbox Code Playgroud)

这将允许尽可能多的地方输入,但我也想有时允许2为货币或4或更多的其他输入.我正在建设的功能是

var isNumeric = function(val, decimals) {
    // decimals is not used yet
    var objRegExp = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
    return objRegExp.test(val);
};
Run Code Online (Sandbox Code Playgroud)

cle*_*tus 21

/^\s*-?[1-9]\d*(\.\d{1,2})?\s*$/
Run Code Online (Sandbox Code Playgroud)

宽恕空白是很好的(\ s).以上不允许从零开始.如果你想允许:

/^\s*-?\d+(\.\d{1,2})?\s*$/
Run Code Online (Sandbox Code Playgroud)

以上两者都不允许十进制数字在小数点之前没有任何内容.如果你想允许:

/^\s*-?(\d+(\.\d{1,2})?|\.\d{1,2})\s*$/
Run Code Online (Sandbox Code Playgroud)


And*_*are 5

尝试这样的事情:

^\d+\.\d{0,3}$

其中"3"是允许的最大小数位数.