@nak-alexey

Поправить регулярное выражение?

Есть код html:
<div id="block">

i am NOT HEADING h1 <h1>I AM HEADING h1</h1>
asdfasd fsdf 
s sadf sadf sd fsadf asdf 
sdf sdaf sdf sdaf
saf 
sdaf 
sdf 
sdf s
daf sd
af sdf sdf sda f43wf4f

<button>transform now</button>

</div>


и код js
document.querySelector('button')
.addEventListener('click', () => {

block = document.querySelector('#block')
html = block.innerHTML
html = html.replace(/(.*?)\<h1>/, (_, $1) => '<h1>' + $1 + '</h1><h1>')
block.innerHTML = html
})


Код js оборачивает текст перед тегом h1 в тег h1. Как сделать что бы текст перед h1 оборачивался не весь, а только несколько символов от существующего тега h1.
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@StockholmSyndrome
document.querySelector('button').addEventListener('click', () => {
  const block = document.querySelector('#block');
  block.innerHTML = block.innerHTML.replace(/(.*?)<h1>/, (_, $1) => {
    const words = $1.trim().split(' ');
    return `<h1>${words.slice(0, -2).join(' ')}</h1> ${words.slice(-2).join(' ')} <h1>`;
  });
});

но вы должны понимать, что ваша задача не должна решаться регулярными выражениями
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
02 апр. 2020, в 16:57
5000 руб./за проект
02 апр. 2020, в 16:49
15000 руб./за проект
02 апр. 2020, в 16:41
2000 руб./за проект