Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как изменить регулярное выражение, чтобы принимало минус и плюс (https://javascript.ru/forum/dom-window/57700-kak-izmenit-regulyarnoe-vyrazhenie-chtoby-prinimalo-minus-i-plyus.html)

Эдди 19.08.2015 14:03

Цитата:

Сообщение от ksa (Сообщение 384758)
Это голословное обвинение... :nono:

Странно. Вообще-то я с ними не дружу и использую крайне редко. Ну, может, для проверки корректности мыла.
Поэтому сам не тестировал, но везде так пишут. Я и поверил.
А разве нет?
А давайте, я проверю.
Вы, если можно, добавьте минус в скрипт, который первый в этой теме.
А я сравню скорость этого скрипта со скоростью того, который привел чуть выше Poznakomlus...

ksa 19.08.2015 14:55

Цитата:

Сообщение от Эдди
чтобы кроме цифр, точки и запятой допускало бы еще и ведущие "+" (что не особо надо) и "-" (обязательно)

Т.е. проверять на
[+|-]<числа>[.<числа>]

Эдди 19.08.2015 14:59

Цитата:

Сообщение от ksa (Сообщение 384803)
Т.е. проверять на
[+|-]<числа>[.<числа>]

Число с плавающей точкой.
Можно вводить только минус (может, плюс, что не важно, потому что без минуса, понятно, что плюс), запятую, точку.

ksa 19.08.2015 15:26

Цитата:

Сообщение от Эдди
Число с плавающей точкой.
Можно вводить только минус (может, плюс, что не важно, потому что без минуса, понятно, что плюс), запятую, точку.

Зачем такие "объяснения"... :blink:
Моя запись верна или нет, вот что требовалось.

Как вариант
var re=/^[+-]?\d+([\.\,]\d+)?$/;
alert(re.test('12345'));
alert(re.test('+12345,123'));
alert(re.test('-12345'));
alert(re.test('12345.'));
alert(re.test('12345.123'));

ksa 19.08.2015 15:31

Цитата:

Сообщение от Эдди
Поэтому сам не тестировал, но везде так пишут. Я и поверил.

Хоть ссылки приведи на написаное... :)

Случаи разные бывают. Допускаю, что неудачная регулярка или некая ситуация даст проигрыш регулярному выражению, в сравнении с альтернативными решениями...

Но возможности регулярок меня лично поражают.
Являясь нативным действием регулярка обязана оперержать по быстродействию другие альтернативные действия и алгоритмы...


Часовой пояс GMT +3, время: 04:53.