Hanuchin: Reguläre Ausdrücke - String Replace mit Ausnahmen

Beitrag lesen

Hier noch meine Lösung:

Es gibt nun eine jQuery Funktion, mit der ich alle Textnodes, welche den Suchbegriff enthalten, als Array erhalte:

  
jQuery.fn.egrep = function(term) {  
 var out = [];  
 var textNodes = function(n) {  
  if (n.nodeType == 3) {  
   var t = typeof term == 'string' ?  
    n.nodeValue.toLowerCase().indexOf(term.toLowerCase()) != -1 :  
    term.test(n.nodeValue);  
   if (t) {  
    out.push(n.parentNode);  
   }  
  }  
  else {  
   jQuery.each(n.childNodes, function(a, b) {  
    textNodes(b);  
   });  
  }  
 };  
 this.each(function() {  
  textNodes(this);  
 });  
 return out;  
};  

Hier wird die Funktion aufgerufen und bei den jeweiligen Textnodes mach ich dann ein Replace, um den Suchbegriff entsprechend zu markieren bzw mit einem Tag zu versehen:

  
var searchTermArray  = searchTerm.split(",");  
for (var i = 0; i < searchTermArray.length; ++i) {  
	var n = $("#body, #stage").egrep(searchTermArray[i]);  
	for (var j = 0; j < n.length; ++j) {  
		void($(n[j]).html( $(n[j]).html().replace(new RegExp("(" + searchTermArray[i] + ")","gi"), '<em class="search-term">$1</em>') ) );  
	}  
}  

Danke nochmal an ChrisB

Baba Hanu