@fantazerno

Как правильно написать регулярное выражение?

Есть стандартный INPUT должно быть ограничение на ввод только числовых значений и значений с плавающей запятой-точкой

Валидно: 1,4 и 1.4
Не валидно: 1.3,4

В моем варианте можно вводить неограниченное число точек и запятых, но нужно только одну точку или запятую

function onlyInteger(a){
	 	$(a).bind("change keyup input click", function() {
	 	    if (this.value.match(/[^\d\.\,]/g)) {
	 	        this.value = this.value.replace(/[^\d\.\,]/g, '');
	 	    }
	 	});
	 }


Заранее благодарю Вас!
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
twobomb
@twobomb
function onlyInteger(a){
   	$(a).bind("change keyup input click", function(e) {
    		var reg = /(\d+[\.\,]?\d*)/;
    			if(this.value.match(reg))
   	        this.value = this.value.match(reg)[1];
            else
            	this.value = '';
   	});
   }
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik
Добрый вечер.
Попробуйте начать со следующего:
https://regex101.com/r/bgrsJM/1/
Ответ написан
Комментировать
djQuery
@djQuery
"Кодируем помаленьку" ("Сказка о Тройке")))
Пардон, конечно, за оффтоп, но
если у вас есть пробема и вы хотите решить её с помощью регулярного выражения, то у вас уже две проблемы...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы