Вчера впервые использовал их в работе. Могучая штука, только много еще не понятно.
Задача - получить номер без префикса.
Пример номера:
РНП-У-08/15-016
С помощью шаблона "\d+[/-]*\d*[/-]*\d*" получаю подстроку "08/15-016". Но заказчик хочет, чтобы в первой и последней группе цифр удалялись лидирующие нули.
Например:
08/15-016 - 8/15-16
07/06-001 - 7/06-1
07/09-011 - 7/09-11
Реально это сделать регулярными выражениями, или проще как проще?
Ликбез по регулярным выражениям
Re: Ликбез по регулярным выражениям
Регулярные выражения предназначены как для поиска так и для замены значений, большинство библиотек это поддерживают.
Твоя задача при помощи регулярок на JavaScript решается так:
Побаловаться можно здесь: http://ideone.com/TwJcZ
Твоя задача при помощи регулярок на JavaScript решается так:
Код: Выделить всё
var numDoc = "РНП-У-08/15-016";
datePart = numDoc.replace(/^.+?(\d+[\/\-]*\d*[\/\-]*)0*(\d*)$/, "$1$2");
print(datePart); // выведет 08/15-16Побаловаться можно здесь: http://ideone.com/TwJcZ
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes
Re: Ликбез по регулярным выражениям
Я бы выделил группы, а потом уже к группам применил бы регулярное выражение. Так легче для понимания. А то иногда встречаешь комментарии для регулярок "Простите, это реально работает."
Re: Ликбез по регулярным выражениям
Наличие групп влияет на производительность, но да, в данном случае это совершенно несущественно.
Еще с кватификатором * спорно - к месту ли он ). Скорее, там можно было бы что-то конкретнее написать (типа \d\d или \d{0,3}), потому что длина номера ограничена.
p.s.
Классный скриншот, че
Еще с кватификатором * спорно - к месту ли он ). Скорее, там можно было бы что-то конкретнее написать (типа \d\d или \d{0,3}), потому что длина номера ограничена.
p.s.
Классный скриншот, че
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes
Re: Ликбез по регулярным выражениям
* ставил для обратной совместимости - старые номера имеют формат ПараБуквМногоЦифр.
А скриншот хороший - благодаря ему нашел скрипт "RegExpEditor.js". С ним намного проще.
А скриншот хороший - благодаря ему нашел скрипт "RegExpEditor.js". С ним намного проще.