Регулярные выражения на 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 шт):
Можно сделать проверку через конвертацию в числовой формат с помощью 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");
}