Have you considered to use anything beside regular expressions?
If you are using the jQuery Validation Plugin you could create a custom validation method using the Validator/addMethod function:
$.validator.addMethod('positiveNumber',
function (value) {
return Number(value) > 0;
}, 'Enter a positive number.');
Edit: Since you want only regular expressions, try this one:
^\+?[0-9]*\.?[0-9]+$
Explanation:
^
)\+?
)[0-9]*
)\.?
)[0-9]+
)$
)^\+?\d*.{0,1}\d+$
Позволяет поставить знак "+" перед числом.
Если вы настаиваете на использовании регулярного выражения, убедитесь, что вы также записываете числа с показателями степени и что вы разрешаете числа в форме .42, что совпадает с 0,42.
^ +? \ d *.? \ d + ([eE] +? \ d +)? $
должен подействовать.