Как можно вытащить цифры после определенного текста?
Всем привет, может кто знает как реализовать. ;)
Задача: Есть выкидное меню в нём список с фамилиями, он постоянно меняется так же как и число в скобках напротив каждой фамилии. Первое если есть данная фамилия в списке, то переменной нужно присвоить значение в скобках, если нет этой фамилии в списке то переменной присвоить значение 0. P.S. Текст поиска уникален на странице. iMacros for Firefox 8.9.7. FF 56.0.2 ....... <ul class="select2-r"> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> All </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Иванов (43) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Зайков (18) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Петров (11) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Сидоров (24) </div> </li> ........ </ul> ....... |
поиск regexp именованные группы и деструктуризация
Defs,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> </head> <body> <ul class="select2-r"> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> All </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Иванов (43) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Зайков (18) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Петров (11) </div> </li> <li class="select2-rs"> <div class="select2-rl"> <span class="select2-m"></span> Сидоров (24) </div> </li> ........ </ul> <script> const divs = [...document.querySelectorAll(".select2-rl")]; const reg = /(?<name>[а-яё]+)\s+\((?<number>\d+)\)/i; const obj = divs.reduce((ob, div) => { const groups = div.textContent.match(reg); if(groups) { const {name, number} = groups.groups; ob[name] = number; } return ob }, {}) alert(obj.Сидоров) </script> </body> </html> |
Defs,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Часовой пояс GMT +3, время: 03:13. |