Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для tipahead
2 / 2 / 0
Регистрация: 30.08.2012
Сообщений: 151

Получить все совпадения

04.11.2016, 21:51. Показов 2575. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь на js спарсить все совпадения на странице.

HTML5
1
2
3
4
5
<a href="/user/НУЖНОЕМНЕСЛОВО_1" title="ТУТ КАЖДЫЙ РАЗ НОВОЕ ЗНАЧЕНИЕ">
 
<a href="/user/НУЖНОЕМНЕСЛОВО_2" title="ТУТ КАЖДЫЙ РАЗ НОВОЕ ЗНАЧЕНИЕ">
 
<a href="/user/НУЖНОЕМНЕСЛОВО_3" title="ТУТ КАЖДЫЙ РАЗ НОВОЕ ЗНАЧЕНИЕ">

JavaScript
1
2
3
4
5
6
7
Сначала получаю значение всех элементов тега a
 
var all_tag_a = document.getElementsByTagName("a");
 
Дале пишу регулярку
 
var regexp = /<a href="\/user\/."/ig;
Далее нужно как-то в цикле эти все значения прогнать через регулярку и вывести, но в интернете парсинг на js больше чем одного значения я не нашел.

Добавлено через 30 минут
Ну короче там еще трабла с типами данных, чтобы заюзать match, нада обьект в строку приобразовать, а если я это делаю, то все данные куда то исчезают.

JavaScript
1
2
3
4
5
6
var pars = document.getElementsByTagName("a");
var str = String(pars);
 
var result = str.match( /<a href="\/user\/."/ig );
 
console.log(result);
Ответ: [object HTMLCollection]

а если вывести console.log(pars);
то там целое дерево элементов
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2016, 21:51
Ответы с готовыми решениями:

Как собрать все совпадения в массив
Здравствуйте. Проще всего наверно объяснить мой вопрос на парсере... то есть... пусть надо собрать текст всех ссылок на...

функция .test не находит все совпадения
Есть функция, которая находит совпадения из слов и оставляет только воспавшие /* ...

Получить все совпадения с карманами
Добрый вечер, есть строка $number = '100||||736||||150----031' Необходимо получить массив Array ( =&gt; Array ( ...

6
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
04.11.2016, 22:14
JavaScript
1
2
3
4
5
6
var allsA = document.links;
var titles = [];
for (var i = 0; i < allsA.length; i++) {
  titles.push(allsA[i].title);
}
alert(titles);
1
 Аватар для tipahead
2 / 2 / 0
Регистрация: 30.08.2012
Сообщений: 151
05.11.2016, 02:17  [ТС]
Добавлено через 3 часа 46 минут
Еще одна проблема появилась
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var pars = document.getElementsByTagName("a");
 
 
    for (var i = 0; i < pars.length; i++) {
 
        var str = String(pars[i]);
 
        var result = str.match(/\/user\/.+/g);
        
console.log(result);
        }
результат выводит как
JavaScript
1
2
/user/petya
/user/vasya
а мне нужно просто petya, vasya, тоже не знаю как сделать...
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
05.11.2016, 03:56
Лучший ответ Сообщение было отмечено tipahead как решение

Решение

JavaScript
1
2
3
4
5
6
var allsA = document.links;
var titles = [];
for (var i = 0; i < allsA.length; i++) {
  titles.push(allsA[i].href.replace(/^.*\/user\//, ''));
}
alert(titles);
в document.links лежат уже все ссылки
не стоит их повторно находить
1
 Аватар для tipahead
2 / 2 / 0
Регистрация: 30.08.2012
Сообщений: 151
05.11.2016, 12:55  [ТС]
Работает, но блин мудрено очень

Добавлено через 26 минут
а как-то дубли до вывода можно убирать?
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
05.11.2016, 13:45
Цитата Сообщение от tipahead Посмотреть сообщение
а как-то дубли до вывода можно убирать?
JavaScript
1
2
3
4
5
6
7
8
function uniq(arr) {
  var table = {};
  return arr.filter(function(a){
    return !table[a] && (table[a] = 1);
  });
};
var result = uniq(['Ivan', 'Petr', 'Ivan']);
alert(result);
0
 Аватар для tipahead
2 / 2 / 0
Регистрация: 30.08.2012
Сообщений: 151
06.11.2016, 02:13  [ТС]
С такой регуляркой очень много лишнего парсится, мне нужно чтобы работал шаблон /<a href="\/user\/."/g
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2016, 02:13
Помогаю со студенческими работами здесь

Regex - получить все совпадения для группы
Привет! Хочу распарсить такой html, а точнее получить текст из ссылок &lt;span&gt;Unique text&lt;/span&gt; &lt;a...

Как можно получить % совпадения строк?
Допустим есть 2 поля: Карова и Корова , как узнать % их похожести? Количество букв в сравниваемых словах может отличаться, к...

Не выводит все совпадения.
Задание по частотному словарю. Чтение из текстового файла.Но выводит только точки и запятые, буквы не считает. Помогите советом. Друг...

Все совпадения preg_match_all
Здравствуйте. Написал регулярное выражение для поиска инфы на станице, ищет нормально, но почему-то вместо всех совпадений, выдаёт лишь...

Найти все совпадения
Есть строка, в которой помимо прочего есть такое: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru