# Problem mit replace()



## gamerfunkie (16. August 2007)

Hallo,

Ich möchte den String 'content' nach dem String 'search' durchsuchen und alle vorkommen von 'search' in 'content' löschen. Also theoretisch:


```
content = content.replace(new RegExp(search,"g"), " ");
```

problem ist aber, das meine variable search ein paar viel sonderzeichen und eine andere Variable enthält(search bleibt bis auf 'block' immer gleich):


```
search = "<td><span onclick=\"javascript:add_row('"+block+"');\">[+]</span></td>";
```

Wie funkt das replace jetzt mit Sonderzeichen, wie oben geht es nicht ... ?
Mfg gamerfunkie


----------



## Quaese (16. August 2007)

Hi,

erweiter das *String*-Objekt um eine Methode zum Maskieren der Sonderzeichen.

```
String.prototype.maskSpecials = function(){
  // Sonderzeichen-Array
  var arrSpecials = ["\\", "^", "[", "]", "(", ")", "$", ".", "|", "?", "*", "+", "{", "}", "/"];
  var strReturn = this;

  // Sonderzeichen-Array durchlaufen
  for(var i=0; i<arrSpecials.length; i++){
    // Sonderzeichen maskieren
    strReturn = strReturn.replace(eval("/\\"+ arrSpecials[i]+"/g"), "\\"+arrSpecials[i]);
  }

  // Ersetzten String zurückgeben
  return strReturn;
}
```
Jetzt kannst du zunächst den Suchstring generieren und in diesem die Sonderzeichen maskieren. Jetzt sollte
er als Suchmaske verwendet werden können.

```
var content = "Hallo<td><span onclick=\"javascript:add_row('test');\">[+]</span></td>, hier bin <td><span onclick=\"javascript:add_row('test');\">[+]</span></td> ich";
// Variable für Suchstring
var block = "test"; 
// Suchstring generieren
var strSearch = "<td><span onclick=\"javascript:add_row('"+block+"');\">[+]</span></td>";
// Sonderzeichen ersetzen
strSearch = strSearch.maskSpecials();
content = content.replace(eval("/"+ strSearch +"/g"), "");
alert(content);
```
Vielleicht hilft dir das weiter.

Ciao
Quaese


----------

