Задать вопрос
@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.
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Средний 8 комментариев
Решения вопроса 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>`;
  });
});

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

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

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