Показать сообщение отдельно
  #5 (permalink)  
Старый 19.08.2018, 23:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Arhitector,
<script>
var str = 'Оооочень большая строка текста, [color=красный]выделенный текст[/color], еще всякий текст текст текст [color=зелёный]еще выделенный текст[/color]! Ну и тд.',
reg = /\[([^=]+)=([^\]]+)\]([\S\s]*?)\[\/\1\]/mig,
array_action = [], n = 1;
str = str.replace(reg, function(a,b,c,d,e) {
  var index_start_action = e - n;
  var index_end_action = index_start_action + d.length
  var color = c;
  var obj = {index_start_action : index_start_action, index_end_action : index_end_action, color : color};
  array_action.push(obj);
  n += a.length - d.length;
  return d
});
document.write(str + "<br>" + JSON.stringify(array_action, null, 4))
</script>
Ответить с цитированием