Вход

Просмотр полной версии : Как можно вытащить цифры после определенного текста?


Defs
06.11.2019, 22:54
Всем привет, может кто знает как реализовать. ;)

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

рони
06.11.2019, 23:54
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>

рони
06.11.2019, 23:55
Defs,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:


... минимальный код страницы с вашей проблемой


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.