Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2013, 19:02
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Убираем 0 в начале вводимой строки
Добрый день.

Подскажите пожалуйста, есть вот такой вот код, который срабатывает при вводе символа в input, но он дает возможность вначале суммы вводить много нулей, как же добавить проверку, что бы первым символом не был нуль.

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) ) {
			theEvent.returnValue = false;
			if(theEvent.preventDefault) theEvent.preventDefault();
		}
	}


Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2013, 19:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function validate(evt) {
    var theEvent = evt || window.event;
    var target = theEvent.target || theEvent.srcElement;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode(key);
    var regex = /[0-9]|/;
    if( !regex.test(key) || (!target.value.length && !+key)) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
    }
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2013, 19:16
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Спасибо, сейчас попробую
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2013, 19:20
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Если я выделяю строку, а потом нажимаю 0, то тогда я могу проставить много нулей.

Подскажите, как быть.
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2013, 14:13
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Задача в такой постановке вообще не решается. Вы можете ввести число 100000000000000, потом мышкой выделить единичку и удалить ее.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2013, 18:25
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Надо делать ParseInt и если == 0, тогда очищать строку.
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2013, 20:10
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

или можно заюзать мою старую наработку:
<script type="text/javascript" src="https://raw.github.com/devote/letJS/master/let.js"></script>

<div>Вводить разрешено только числа, любые. Дробные включительно.</div>
<input type="text" data-let-input="/^[0-9\.]+$/" data-let-template="/^(\d+\.?\d{0,2}|)$/" />

<div>Вводить разрешено только целые числа.</div>
<input type="text" data-let-input="/^[0-9]+$/" data-let-template="/^(\d*)$/" />

<div>Вводить разрешено только целые числа и запрещено число 0 в начале.</div>
<input type="text" data-let-input="/^[0-9]+$/" data-let-template="/^([1-9]\d*|)$/" />
Данная библа работает для элементов INPUT и TEXTAREA, так же для TEXTAREA есть дополнительный атрибут: data-let-length="100" указывающий максимальное количество символов ввода текста.

Так же включена обработка вставки и вырезки буфера обмена.

Лежит в Gist: https://gist.github.com/devote/5264299
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 01.04.2013 в 18:11.
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2013, 11:05
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Спасибо большое! Очень хорошая библиотека, уже юзаю =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить текст в начале и конце строки b1194122 Общие вопросы Javascript 12 27.11.2019 14:44
Удаление пробелов в начале и конце строки CyMKuH Общие вопросы Javascript 6 22.03.2016 13:41
Чтение массива из адресной строки Xalyavbich Общие вопросы Javascript 0 27.06.2012 15:56
как вставить строки в таблицу? Yurik Events/DOM/Window 2 29.02.2012 17:14
Отфильтровать строки в таблице по заданным критериям Hag1989 Общие вопросы Javascript 0 03.12.2009 02:06