Моя регулярка работает медленно. Как ускорить процесс?
Например, у меня есть такой хтмл текст test1<div>test2</div>.
Я хочу все что в не div также завернуть в div. Как мне лучше это сделать?
Вот мой пример:
// между текстом который перед див и самим дивом вставляю текст ($html$)
.replace(/(<div[^>]*>.*<\/div>)/gi, '($html$)' + '$1')
// беру весь текст перед ($html$), то есть который вне div и заворачиваю в див
.replace(/(.*)\(\$html\$\)/gi, '<div>$1</div>')
// удаляю текст ($html$)
.replace(/\(\$html\$\)/, '')
P.S. У меня такой случай, что текст вне дива может быть только в начале.
Если нам действительно надо завернуть только текст, стоящий перед первым <div>, то нам не интересно содержимое <div>, достаточно только факта его наличия:
.replace(/(.*?)(?=<div[ >])/i, '<div>$1</div>');
Возможно без использования регулярок будет работать быстрее (замена в переменной a):
var pos=a.indexOf('<div');
if(pos>0) a='<div>'+a.substr(0,pos)+'</div>'+a.substr(pos);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости