Попробуйте это (также слегка оптимизированное регулярное выражение с той же функциональностью)
$.validator.addMethod("decimalCheck", function(value) {
var v = /^\d+(\.\d+)?$/;
return v.test(value);
}, "Error here");
Ваша проблема в том, что вам нужно самостоятельно экранировать обратную косую черту (двойной выход), иначе конструктор регулярных выражений в действительности передаст эту строку ("^d*[0-9](.d*[0-9])?$"
)
var v = new RegExp("^\\d*[0-9](\\.\\d*[0-9])?$", "g");
кстати. использование здесь флага g
может привести к неожиданным результатам. Лучше оставьте это, поскольку вы все равно используете ^
и $
.