Текст
message = 'Hello, my name ist Peter!';
Мои теги
tags = {};
tags.tagsOne = {};
tags.tagsOne['t1'] = 'hello|is|there|g';
tags.tagsOne['t2'] = 'bub';
tags.tagsOne['t3'] = 'dog|house';
tags.tagsTwo = {};
tags.tagsTwo['t1'] = 'blub|man';
tags.tagsTwo['t2'] = 'word';
tags.tagsTwo['t3'] = 'sorry|high';
Regex
regexT1 = new RegExp('('+tags.tagsOne['t1']+'|'tags.tagsTwo['t1']+')','gi');
regexT2 = new RegExp('('+tags.tagsOne['t2']+'|'tags.tagsTwo['t2']+')','gi');
regexT3 = new RegExp('('+tags.tagsOne['t3']+'|'tags.tagsTwo['t3']+')','gi');
Заменить
message = message.replace(regexT1,'<span class="highlightT1">$1</span>');
message = message.replace(regexT2,'<span class="highlightT2">$1</span>');
message = message.replace(regexT3,'<span class="highlightT3">$1</span>');
Он также находит и заменяет <span class="highlightT1">$1</span>
.Можно ли в регулярном выражении сказать, но не это -> <span class="highlightT1">$1</span>
Пример -> http://jsfiddle.net/tVmTe/3/
ОБНОВЛЕНИЕ: Рабочий пример -> http://jsfiddle.net/tVmTe/9/