指数とかには対応していませんが...。
サンプル
var reCommified = /^((?:[+\-]?0)|(?:[+\-]?[1-9][0-9]{0,2})(?:,\d{3})*)(?:\.(\d+))?$/;
var numString = "-123,456,789.1234";
var matched = numString.match(reCommified);
console.log(matched); //=> ["-123,456,789.1234", "-123,456,789", "1234", index: 0, input: "-123,456,789.1234"]