не могу придумать регулярное выражение
Хочу проверить значение в поле регулярным выражением. Поле не обязательное для заполнения, в поле должно быть целое значение больше 0. Логика такая, если true, то вызывается ошибка, если false, то все норм валидация прошла.
console.log(h != '' && h != h.toString().replace(/[^1-9]/g, ''));
Пояснение:
h != '' - это я проверяю на необязательность заполнения, если не пустое, то true, если пустое? то false;
h != h.toString().replace(/[^1-9]/g, '') - тут я оставляю числа с 1 до 9 и проверяю, входящее значение не равно "обрезанному", если равно то false, если не равно то true
и тут возникла проблема, что при значениях кратных 10, выдается ошибка так как 0-и уходят в проверке поэтому я предположил, что может
console.log(h != '' && h != h.toString().replace(/[^0-9]/g, '') || h <= 0);
Но это тоже не вариант, так как теперь он пропускает 0.
Источник: Stack Overflow на русском