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>
  • Вопрос задан
  • 78 просмотров
Решения вопроса 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>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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