Регулярные выражения на js

Подскажите, что то у меня не работает данное регулярное выражение... Мне нужно осуществить проверку на введение положительных целочисленных чисел и чисел с плавающей точкой или плавающей запятой. Вот я написал следующий код, но он срабатывает некорректно... Точно такое же выражение работает на регулярках с++ и кьют... Здесь почему то не пашет... ? В чем может быть причина?

Вот пример заведомо некорректных вводов, которые он легко пропускает(перечисление через точку с запятой): 12..32; 1,2.34..4; 344,3,3 и т.д. Не пропускает только ввод с символами на борту...

let regAnswer = new RegExp("[0-9]+[\.,]{0,1}[0-9]*");
if(regAnswer.test($(".arbOnlineSheet .NoInput_On").val())){
    alert("Good");
}

Ответы (1 шт):

Автор решения: myscode

Можно сделать проверку через конвертацию в числовой формат с помощью Number, который в случае некорректного числа вернет NaN

let str = $(".arbOnlineSheet .NoInput_On").val();
let number = Number(str.replace(/,/, '.')); 
if (!isNaN(number) && number >= 0) { // если число и число положительное  
   alert("Good");
}

второй вариант - через регулярное выражение

let regAnswer = new RegExp("^[+]?([0-9]*[.,])?[0-9]+$");
if(regAnswer.test($(".arbOnlineSheet .NoInput_On").val().trim())){
    alert("Good");
}
→ Ссылка