Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/47: Рейтинг темы: голосов - 47, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 11

Регулярное выражение для поля Input метод replace (числа)

20.02.2019, 19:04. Показов 8594. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, есть поле Input, есть обработчик для этого поля.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
this._form.find("input:text").on("change keyup input click", this.changeCheckInput);
//---
    private changeCheckInput = (event:JQueryEventObject) => {
        let value : string = $(event.target).val() as string;
 
        if (value != value.replace(/[^0-9\.]/g, '')) {
            value  = value.replace(",", ".");
            // Чистим строки
            value = value.replace(/[0-9]/, '');
        
            $(event.target).val(value);
         }
         
    }
Я хочу сделать ограничение ввода для целых чисел и чисел со знаком, как ввод так и вставка.
Маска числе определяемая формат ввода целые или со знаком лежит в атрибуте min у input.
Можно вводить целые.

HTML5
1
<input type="text" min="1" max="10">
Можно вводить со знаком.
HTML5
1
<input type="text" min="1.00" max="10">
Алгоритм такой:
1) Событие ввода сработало.
2) Проверяем атрибут min целое или дробное?
3) Применяем нужное регулярное выражение для Input методом replace
4) Обновляем значения в Input.

Подскажите, как составить регулярное выражение для проверки маски целых для целых чисел, а так-же маску форматирования целых чисел для метода replace, и тоже самое только уже для чисел со знаком.

Маска должна преобразовывать такие значения.
Целые числа
05445 - 5445
05445.54 - 5445
.5445 - 5445
asdasd?.5445ds4542f - 5445
asdasd?.5445ds45.42f - 5445

Для чисел со знаком.
024.44 - 24.44
.44 - 0.44
. - 0
asdasd?0.44ds4542f - 0.44
asdasd?44ds4542f - 0.44
asdasd?.44544755ds4542f - 0.44
asdasd?44544ds4542f - 44544


Буду очень признателен за помощь, думаю многим такая маска пригодиться!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2019, 19:04
Ответы с готовыми решениями:

Регулярное выражение для поля ввода числа типа float
Сколько ни гуглил, ответа на свой вопрос не нашел. Надо сделать регулярку для поля ввода, куда можно вводить только число типа float - с...

Регулярное выражение для тега input предназначенного для введения телефона.
Помогите написать регулярное выражение для тега input предназначенного для введения телефона. Ни чего усложнять не нужно. Необходимо...

Регулярное выражение для проверки поля
Привет. Нужно регулярное выражение для проверки поля ФИО. Проверка нестрогая, т е могут быть числа. Могут быть также и двойные, и...

4
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 11
03.03.2019, 04:00  [ТС]
Тема актуальна
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
03.03.2019, 23:19
Цитата Сообщение от BananaRush Посмотреть сообщение
Маска должна преобразовывать такие значения.
Целые числа
05445 - 5445
05445.54 - 5445
.5445 - 5445
asdasd?.5445ds4542f - 5445
asdasd?.5445ds45.42f - 5445
JavaScript
1
replace(/^[^1-9]*(\d+).*|.+/, '$1');
1
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 11
05.03.2019, 21:24  [ТС]
Цитата Сообщение от Emilien Посмотреть сообщение
1
replace(/^[^1-9]*(\d+).*|.+/, '$1');
Спасибо, это работает для целых числе. Но как разрешить точку? и не более 2 символа после точки, если точка первая, то ставим перед ней число 0
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
07.03.2019, 02:04
Лучший ответ Сообщение было отмечено BananaRush как решение

Решение

Последовательность из трёх replace.
JavaScript
1
2
3
.replace(/^.*?((\d+\.?|\.)\d{0,2}).*|.+/, '$1')
.replace(/^0*(?!\.|$)/, '')
.replace(/^\.$|^(\.)/, '0$1')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2019, 02:04
Помогаю со студенческими работами здесь

Регулярное выражение для проверки поля типа float
Привет, Релиб! Подскажите плз ,какое выражение нужно, чтоб проверить, что в поле ввели именно число типа флоат- т.е. там из 'нецифр'...

Дана строка,заменить все числа в ней на звездочки(для этого используйте метод replace)
Дана строка,заменить все числа в ней на звездочки(для этого используйте метод replace)

Регулярное выражение на проверку числа с точкой или запятой
Доброго времени суток! Суть задачи такова: Нужно проверить число регуляркой, в случаи если число не проходит выдать ошибку. Какие...

Регулярное выражение для проверки текстового поля формы
необходимо проверить поле формы чтобы кроме текста и некоторых тегов лишнего ничего не было к примеру такое выражение : &lt;img...

Регулярное выражение для дробного числа от 0 до 1
Помогите составить регулярное выражение для дробного числа от 0 до 1. Число типа double, после точки может стоять хоть сколько цифр,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru