@Httdientee

Не могу правильно сделать условие?

function validate(evt) {
			var theEvent = evt || window.event;
			var key = theEvent.keyCode || theEvent.which;
			key = String.fromCharCode( key );
			var regex = /^[0-9.,]+$/;
			if( !regex.test(key) && !regex.test('.,') && !regex.test(',.')) {
				theEvent.returnValue = false;
				if(theEvent.preventDefault) theEvent.preventDefault();
			}
		}


Сейчас эта функция работает не верно она позволяет вводить 1.,55 или 1,.55 а нужно запретить . и , то есть должно быть что-то одно
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Слушать лучше событие не клавиатуры, а input — так не пропустите, например, вставку ctl+v

Почему бы не заменять запятые точками?

Наверное, допустим вообше лишь один знак: не может же быть числа 12.34.56? Тогда регулярка валидации примерно такая \d*[\.,]?\d+
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
^(?:\d+(?:[.,]\d*)?|[.,]\d+)$
Ответ написан
Ваш ответ на вопрос

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

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