@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.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 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>`;
  });
});

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

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект