Задать вопрос
TRen208
@TRen208

Проблема с RegExp?

Столкнулся с такой проблемой.
Есть стока:
let str = "This more <i id='q' class='a_hu18' disabled>text</i>";

Я пытаюсь удалить все атрибуты тега i, и в принципе все работает. Но только стоит добавь какой-то символ в скобки, так сразу ищет не правильно.
В чем проблема? .+ должен искать любые символы.
Без "+"
let str = "This more <i id='q' class='a_hu18' disabled>tag</i>";

let res = str.match(/<\w+(\s+\w+(=(').+?\3)?)+>/gi)[0].match(/(\s+\w+(=("|')\w+\3)?)+/g)[0]
console.log(str.replace(res, "")) // This more <i>tag</i>

С "+"
let str = "This more <i id='q+' class='a_hu18' disabled>tag</i>";

let res = str.match(/<\w+(\s+\w+(=(').+?\3)?)+>/gi)[0].match(/(\s+\w+(=("|')\w+\3)?)+/g)[0]
console.log(str.replace(res, "")) // This more <i='q+' class='a_hu18' disabled>tag</i>
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
@dodo512
let str = "This more <i id='q+' class='a_hu18' disabled>tag</i>";

let res = str.replace(/(<\w+)\s(?:'[^']*'|"[^"]*"|[^"'>])*(?=>)/g, "$1");
console.log(res) // This more <i>tag</i>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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