Javascript.RU

Да, просто замени весь шаблон на этот:
 
 
Опции темы
 
Старый 14.08.2019, 15:24
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Обрезать HTML!
Коллеги, доброго времени суток, парюсь с регулярками, прошу помощи.
Есть строка в виде html документа:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<header>
		<div class="log">123</div>
		<nav>...</nav>
	</header>
	<main>
		<!-- some content -->
	</main>
	<footer>
		<p>
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non neque ab qui soluta harum consequuntur earum facilis. Pariatur, quia optio iste, excepturi corporis nesciunt, consequuntur, exercitationem incidunt labore eius voluptas.
		</p>
		<a href="#"></a>
	</footer>
</body>
</html>

надо из него вырезать все, вокруг тега main, т.е. остается только:
let str = `<main><!-- some content --></main>`;


Заранее благодарствую.
 
Старый 14.08.2019, 15:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,304

Сообщение от Роман Андреевич
надо из него вырезать все, вокруг тега main, т.е. остается только:
let str = `<main><!-- some content --></main>`;
Оно?
var str='Лишний текст ... <main><!-- some content --\></main> ... продолжение лишнее';
alert(str.match(/<main>.*<\/main>/));
 
Старый 14.08.2019, 16:08
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

ksa, да спасибо
 
Старый 14.08.2019, 16:40
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

ksa, беда, не оно(((

Вот входная строка:

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="robots" content="noindex">
    <meta name="X-Robots-Tag" content="noindex">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
</head>
<body data-country="">
<header role="banner" class="nav-header">
        </div>
    </div>
    <title>Ticket de RAPIPAGO</title>
</header>
<div class="ticket-box ticket-box-c2">
/--------------------------------------------------------------- от сюда 
    <div class="payment-info-container-c2">
        <div class="header-ticket">
            <!-- incluye el header del ticket -->
<div class="ticket-header">
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnYAAACqCAYAAAAgNwKEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAPzxJREFUeNrsnU+MFNe97w+ECOfKwBDZ9wpIrhtHNwZnwWAnbGyLRmZlxWJmESm2FBgi2VkEBZAj+fI2M7MJshQLJvJb3ESCGSLZvspiBtnXKywa2dmQODSLxMRPgfbj2ujFVhiMdYMVJX71rTpnpqa6qrrOn/rb36/UHgzT3VXnnKrzqd/fVZ9//rmgKIqiKIqi6q9VBDuKoiiKoiiCHUVRFEVRFEWwoyiKoiiKogh2FEVRFEVRFMGOoiiKoihq6MFu1apVHKmStO2h50e9HyPyf9uhf7rPe7Uiv47fG8340Yveqxvz9/i7WzG/07vyuxd6nBGKoiiKKkeZmI1gVzq4tUNAtkH+1AG0oqVgDz8vh/6f4EdRFEVRBLuhAriWfO0O/blp6oSgr0PgoyiKoiiCXd0hDtY2gNwOEVjeRod8SJRV74L82fFgb5ErhaIoiqIIdlUEubYEud1iZRycU/1j7Vpx5557lv7/f7Zsif29pL9X+uLt2+KLn3wy8O//6YMP7e11Dg6wnVJDrUxFt2AaEogh03+KrCHeLtyk6Sm/Xm/CAnhCLYNQP6FOCpnzvEcoZVlZI1OiGAe18sW+IWmalKUU7ADtfUUUJd4XOD++zpEu+3hDqKYDeE8BeFvJZITtzYMeDpExB2awC8+WLsG0U5g4dBgfq4Lmfofi1tfnDPnBfFe1IYS0kR7CiKoigqJ8BThYXzds0C4A+mFjqmKIIdRVEURVnDneoccTgHwIO7fcZ7nWQBYopgR1EURVHFQp6rLkRdCXQLBDqKYEdRFEVR5UMe4pxVhQMVy9wS/fHOnRDMXRZBsekeB5CqDNhRFEVRFEVR1RfBjqIoiqIoimBHURRFURRFEewoiqIoiqIogh1FURRFURRFsKMoiqIoimq0/r8AAwA8zR5enm5XSAAAAABJRU5ErkJggg==" height="27">
</div>
        </div>

        <div>
            <div class="principal-info">
                <!-- informacion propia del ticket -->
                
<h1 class="payment-info">Solo te queda pagar $ 156,00 en tu sucursal de Rapipago m&aacute;s cercana</h1>

<p>D&iacute;ctale estos n&uacute;meros al cajero:</p>
<div class="payment-secondary-info"></div>
<div class="payment-code-c2">
    <span>2084</span><span>0846</span>
</div>


    <br />
    <p>Tienes hasta el 19/08/2019 para hacerlo.</p>


<!-- incluye el div concepto -->
<div class="rapipago-item-time-accreditation item-time-accreditation">
    <i class="ch-icon-time"></i> Acreditaci�n inmediata.
</div>

<!-- incluye el barcode -->

    <div class="payment-barcode">
        <img src="data:image/png;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjv8A3H13/wAbf+Rn13/sVLf/ANOUdcBqP/Mx/wDYqaV/7j67/wCN
v/Iz67/2Klv/AOnKOgA+IH/NYv8AuC/+y0f/AD1aPiB/zWL/ALgv/stH/wA9WgA07/k4Xw5/3Ff/
AEr1CsCx/wCQH8FP+wrcf+lsdb+nf8nC+HP+4r/6V6hWBY/8gP4Kf9hW4/8AS2OgDn/AP/IseIv+
B/8Apt1KvX5f+Sh+PP8AsK+G/wD0bFXkHgH/AJFjxF/wP/026lXr8v8AyUPx5/2FfDf/AKNioAPi
Z/yTz4k/9hW0/wDRVjXAaV/yHNK/7CvhT/0ieu/+Jn/JPPiT/wBhW0/9FWNcBpX/ACHNK/7CvhT/
ANInoA39R/5OF8R/9wr/ANK9Pr0D4Jf8kh0L/t4/9KJK8/1H/k4XxH/3Cv8A0r0+vQPgl/ySHQv+
3j/0okoA9AooooA//9k=" width="300px">
        <span>6001908196005001966315040000208408450000156006</span>
    </div>
<p class="rapipago-msg_after">Este comprobante es v&aacute;lido para pagar en los locales de la Red Rapipago en todo el pa&iacute;s.</p>
            </div>
            <input id="payment-detail-widget" class="payment-detail-widget" type="checkbox" checked/>
<div class="div-concept">
        <label for="payment-detail-widget">
            <span>Concepto</span>
        </label>
        <div class="ch-expandable-container purchases-expandable-container-c2" aria-expanded="true">
            <div class="payment-container-c2">
                <p class="buyed"><span></span>Compraste</p>
                    <p class="payment-reason-c2">Awesome Bronze Shoes</p>
                <p class="payment-price-c2"><strong class="ch-price">$ 156,00</strong></p>
            </div>
        </div>
</div>
        </div>
        <div class="more-info">
            <!-- incluye el boton imprimir -->
            <a class="payment-button-print btn-ticket" onclick="javascript:top.focus();
window.print()" href="#">Imprimir</a>
        </div>
    </div>

/------------------------------------до сюда
    <br/>
</div>

<footer role="contentinfo" class="nav-footer">
    <div class="nav-bounds">
        <div class="nav-footer-primaryinfo">
    </div>
</footer>

<script type="application/javascript">
   
</script>
</body>
</html>


нужно получить то что я выделил дефисами в коде, вроде бы правильное было решение у вас, но тут не работает оно. please help!!! Заранее благодарю
 
Старый 15.08.2019, 07:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,304

Роман Андреевич, можно использовать тот факт, что нужный тебе кусок начинается с
<div class="ticket-box ticket-box-c2">

и заканчивается
<br/>
</div>
 
<footer role="contentinfo" class="nav-footer">

Условно назову их левой и правой скобками...
Т.о. твое решение может выглядеть так
var str='Лишний текст ... левая скобка<!-- some content --\>правая скобка ... продолжение лишнее';
alert(str.match(/левая скобка(.*)правая скобка/)[1]);
 
Старый 15.08.2019, 08:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,304

Роман Андреевич, посмотрел я еще раз твою "строку"...
Оказывается тебе нужно содержимое
<div class="ticket-box ticket-box-c2">
...
</div>

Т.о. тебе и регулярка не нужна.
Получай данные как html и работай с ними стандартными методами
obj=html.querySelector('.ticket-box.ticket-box-c2');
 
Старый 15.08.2019, 08:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,304

Роман Андреевич, поместил твой текст в файл tmp1.csp...
Правда он был не валидный. Один ДИВ был не закрыт, я закрыл...

Вот еще один вариант решения.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$.ajax({
		url: 'tmp1.csp',
		success: function(Text){
			obj=$('<div></div>').html(Text);
			obj=obj.find('.ticket-box.ticket-box-c2');
			alert(obj.html());
		}
	});
});
</script>
</head>
<body>
</body>
</html>
 
Старый 20.08.2019, 06:52
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

ksa, большое спасибо, но стандартными методами не могу потому что это со стороны сервера происходит на nodejs. Поэтому регуляркой надо получить содержимое. Все равно спасибо за помощь
 
Старый 20.08.2019, 16:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Роман Андреевич,
мб сразу с сервером и работать? нужное вам вынести отдельным объектом
 
Старый 20.08.2019, 16:58
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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

Последний раз редактировалось ksa, 21.08.2019 в 10:35. Причина: мат
 

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ссылок в html коде Biglu Элементы интерфейса 4 20.11.2018 10:42
вывод сообщений со стены vk Радиойод Общие вопросы Javascript 0 15.11.2017 14:48
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
Как корректно обрезать html в contenteditable div ? asker Events/DOM/Window 0 28.04.2016 17:04
Преобразовать строку в HTML код (обратное htmlspecialchars из php) daslex Общие вопросы Javascript 70 23.08.2015 20:41


© Илья Кантор, 2007-2021 О проекте - Архив форума - Вверх