Javascript-Regex规则,在span标记中找不到XX

Javascript - Regex rule, find XX but not in span tag

本文关键字:找不到 XX span 规则 Javascript-Regex      更新时间:2023-09-26

文本

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>
在regex中有可能说,但不是这个-><span class="highlightT1">$1</span>

示例
->http://jsfiddle.net/tVmTe/3/

更新:
工作示例->http://jsfiddle.net/tVmTe/9/

在空格中拆分消息,并单独考虑每个单词。

var words = message.split(' '),
   var i = 0;
for(i; i < words.length; ++i){
   if(regexT1.test(words[i])){
      words[i] = words[i].replace(regexT1,'<span class="highlightT1">$1</span>');
      continue;
   }
   //...
}
message = words.join(' ');