Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2018, 14:04
Новичок на форуме
Отправить личное сообщение для xecic Посмотреть профиль Найти все сообщения от xecic
 
Регистрация: 20.08.2018
Сообщений: 4

Как разрешить ввод только цифр и минуса в начале?
Привет. Есть такой код -
$( document ).ready(function() {
  $("#AXInput").on("keypress keyup blur",function (event) {
             //this.value = this.value.replace(/[^0-9\.]/g,'');
      $(this).val($(this).val().replace(/[^0-9\.]/g,''));
             if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                 event.preventDefault();
             }
         });
  });

Он разрешает вводить только цифры и точки, если нужна float переменная . А как сделать так, чтобы можно было ввести еще и знак минус(-), перед строкой? Например -1,56 или -5. То есть только в начале строки разрешить ввод знака.
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2018, 15:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,110

Сообщение от xecic
А как сделать так, чтобы можно было ввести еще и знак минус(-), перед строкой? Например -1,56 или -5
Как вариант...

var re=/^\-?\d*?(\.\d+)?/;
alert(re.test('123'));
alert(re.test('0.123'));
alert(re.test('.123'));
alert(re.test('1.23'));
alert(re.test('-1.56'));
alert(re.test('-5'));
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2018, 15:30
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 2,965

<input type="number">
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2018, 16:58
Новичок на форуме
Отправить личное сообщение для xecic Посмотреть профиль Найти все сообщения от xecic
 
Регистрация: 20.08.2018
Сообщений: 4

Сообщение от ksa Посмотреть сообщение
Как вариант...

var re=/^\-?\d*?(\.\d+)?/;
alert(re.test('123'));
alert(re.test('0.123'));
alert(re.test('.123'));
alert(re.test('1.23'));
alert(re.test('-1.56'));
alert(re.test('-5'));
Так?
$( document ).ready(function() {
  var AX;
  var re=/^\-?\d*?(\.\d+)?/;

  $("#AXInput").on("keypress keyup blur",function (event) {
     AX = re.test($(this));
  });
});

Или так
$( document ).ready(function() {
  $("#AXInput").on("keypress keyup blur",function (event) {
             //this.value = this.value.replace(/[^0-9\.]/g,'');
      $(this).val($(this).val().replace(/^\-?\d*?(\.\d+)?/,''));
             if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                 event.preventDefault();
             }
         });
  });

Не получается, что то.

Последний раз редактировалось xecic, 20.08.2018 в 17:27.
Ответить с цитированием
  #5 (permalink)  
Старый 20.08.2018, 18:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 9,297

$('#AXInput').on('input keyup', function() {
    this.value = this.value.replace(/\-{2,}/, '-').replace(/[^\d\.-]|\b-/, '')
})

Последний раз редактировалось laimas, 20.08.2018 в 18:37.
Ответить с цитированием
  #6 (permalink)  
Старый 20.08.2018, 18:26
Новичок на форуме
Отправить личное сообщение для xecic Посмотреть профиль Найти все сообщения от xecic
 
Регистрация: 20.08.2018
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
$('#AXInput').on('input keyup', function() {
    this.value = this.value.replace(/\-{2,}/, '-').replace(/[^\d-]|\b\-/, '')
})
Спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 20.08.2018, 18:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 9,297

replace(/[^\d\.-]|\b-/, '') - так будет верно, исправьте.

PS. Не вник, а разрешены десятичные, значит в исключения нужно добавить точку, но как и со знаком нужно еще бороться с двойным ее вводом.

Последний раз редактировалось laimas, 20.08.2018 в 18:40.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить скрипт только после того, как элемент с определенным id появляется в DOM strs Events/DOM/Window 10 26.05.2018 18:10
Как сделать клик по элементу только один раз в день Alexodiy Events/DOM/Window 7 19.01.2018 14:23
Google map api - Как разрешить пользователю ставить только один маркер на карте Koder-S Библиотеки/Тулкиты/Фреймворки 5 06.06.2016 13:20
Gulp watcher и Babel. Как компилировать только измененный файл? FINoM Оффтопик 9 27.09.2015 21:04
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 00:33