@Ph0en1xxx

Как составить регулярное выражение?

На странице есть поля с value= их несколько, одно из них отвечает за почту, мне нужно спарсить страницу get запросом и вытащить именно почту, как это сделать, я много вариантов перепробовал, все равно не выходит отсечь код после почты
</th><td>
			<input type="text" name="email" id="email" class="required email" value="demo@mail.ru" />
		</td></tr>
		<tr><th>
			<label for="createdate">Дата покупки</label>
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Не страдай с регулярками. Юзай DOM:
const html = `<td>
      <input type="text" name="email" id="email" class="required email" value="demo@mail.ru" />
    </td>`

const template = document.createElement('template')
template.innerHTML = html
console.log(template.content.querySelector('input[name="email"]').value) // demo@mail.ru
Ответ написан
@ksnk
Если нужно регулярки - вот так можно
let m= document.body.innerHTML.match(/(?=[^>]*name="email")<input[^>]+value="([^"]+)"/is);
console.log(m[1]);

Регулярка из 2-х половин. Вторая определяет элемент и выковыривает его value, первая проверяет, что name у этого элемента правильный. Расчет на то, что кавычки всегда будут двойными.
Через Дом, конечно, лучше. На кавычки закладываться не придется.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы