Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/51661-regulyarnoe-vyrazhenie.html)

tata4ka 14.11.2014 17:16

Регулярное выражение
 
Написать регулярное выражение для определения диапазона печати страниц в Microsoft Word(для примера).
1
1,2
1,3-5
1-3,4-8
([0-9,]*(,|-)?[0-9])*
Моё регулярное выражение вроде правильное, но не определяет ошибки. например,+число в начале строки тоже не ошибка, хотя это не правильно

рони 14.11.2014 17:44

tata4ka,
var reg = /^\d+(-\d+)?(,\d+(-\d+)?)*$/;
 alert([reg.test('1-4-7'),reg.test('1-4,6-7'),reg.test('1,6-7'),reg.test('1-3,56'),reg.test('1')] )

krutoy 14.11.2014 18:28

рони,
Не уверен, но вот так не лучше?
var reg = /^\d+(-\d+)?(,\d+(-\d+)?)?$/;
Как минимум Ваш reg пропускает, 1-1-1,1-1, и тд. Это я пока наобум, не уверен, голова не варит:)

рони 14.11.2014 18:39

Цитата:

Сообщение от krutoy
var reg = /^\d+(-\d+)?(,\d+(-\d+)?)?$/;

с первыми двумя? согласен - дополнил

greenwar 15.11.2014 00:56

если задача только отловить эти цифры-знаки:
1
1,2
1,3-5
1-3,4-8
то проще так:
[-0-9,]
и отсеивать всё что мимо
но честно говоря хз, как там в ворде ловить цифру 1 например
должен быть блок какой-то, в котором показываются именно номера страниц, его и ловить


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