Как можно вытащить цифры после определенного текста?
Всем привет, может кто знает как реализовать. ;)
Задача: Есть выкидное меню в нём список с фамилиями, он постоянно меняется так же как и число в скобках напротив каждой фамилии. Первое если есть данная фамилия в списке, то переменной нужно присвоить значение в скобках, если нет этой фамилии в списке то переменной присвоить значение 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, время: 14:34. |