Как регуляркой на JS вытащить определённый текст с открытой страницы?

Добрый день, у меня со страницей грузится дополнительный JavaScript файл, мне нужно сделать так, чтобы при его выполнении он спарсил содержимое текущей страницы и вытащил от туда какое нибудь текстовое значение

Допустим если бы это был сайт тостер, где я авторизован, в html коде можно найти такую строку

<a class="user-panel__user-name" href="https://toster.ru/user/andreystrelkov">
          andreystrelkov        </a>


мне JS нужно вытащить andreystrelkov

как я понимаю нужно копать в document.match, но не уверен
  • Вопрос задан
  • 1009 просмотров
Пригласить эксперта
Ответы на вопрос 7
kravasuper
@kravasuper
и чо и чо?
даже без jQuery
var text = document.querySelector(".user-panel__user-name").innerText;
Ответ написан
Writerim
@Writerim
Заполнить позже...
/\<a(.*)andreystrelkov(.*)\>/g
На сколько помню
Ответ написан
Комментировать
Menlod
@Menlod
Front-end developer
var str = '<a class="user-panel__user-name" href="https://toster.ru/user/andreystrelkov">   andreystrelkov        </a>';
      if (str.match(/\/user\/(\w+)\"/)) { uName = RegExp.$1};
      console.log(uName);


P.S.: для любителей jQuery: не забывайте про $.trim того что вы дергаете, иначе будет переменная аля:

uName = "         andreystrelkov        "; // с кучей пробелов и прочих табуляций по бокам
Ответ написан
Комментировать
@robotcigan
Может я немного не понял вопроса, но почему нельзя через jQuery просто сделать так:
$('.user-panel__user-name').text();
Ответ написан
Комментировать
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
document.body.innerHTML.match(/<a class="user-panel__user\-name"[^>]*([^<]+)/);
//На выходе
[
'<a class="user-panel__user-name" href="https://toster.ru/user/andreystrelkov">andreystrelkov</a>',
'andreystrelkov'
]


Но, ведь это, блин, JS...JavaScript - мощный инструмент для работ с DOM. А вы собираетесь просто брать и парсить HTML. Это задача для PHP или подобного языка, но уж точно не для данного!

Как вам уже написали - вот самое верное решение вашей задачи!
var text = document.querySelector(".user-panel__user-name").innerText;
Ответ написан
Комментировать
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
// Получаем все элементы
var elements = document.querySelectorAll('.user-panel__user-name');
// Получаем массив содержимого, каждую строку тримим
var matches = Array.prototype.map.call(elements, function(username) {
   return username.innerHTML.replace(/^\s+|\s+$/g, '');
});
Ответ написан
Комментировать
@feuer81
мне изучить регулярные выражения помогла лекция №6 от Hexlet JavaScript
ну еще есть сайты...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы