Sebastian K.: Problem mit string-sub im Array

Hallo,

Ich lese per Platzhalter einzelne Strings in ein Array ein, das sieht zum Beispiel so aus:

[Code]
var Tabellendaten = new Array( "%a", "%b", "%c" );
[/Code]

Mein Problem ist jedoch, das am Ende die ganze Sache im Klartext so aussieht:

[Code]
var Tabellendaten = new Array( "foo("bar")", "bla", "blub" );
[/Code]

Daraus ergibt sich jedoch der Fehler das gemotzt wird "')' erwartet" was ja so auch stimmt, ich bräuchte nun also eine Möglichkeit das beim einlesen eines Strings kontrolliert wird ob "verbotene" Zeichen enthalten sind und die entsprechend auskommentiert/ignoriert werden, also am Ende wäre die beste Lösung die rauskommen könnte:

[Code]
var Tabellendaten = new Array( "foo("bar")", "bla", "blub" );
[/Code]

Ich habe bisher jedoch nichts passendes für diesen javascriptfall gefunden. kann mir da jemand einen Tip geben?

Wäre dankbar
Schönen Abend noch
Sebastian K.

  1. hi,

    var Tabellendaten = new Array( "foo("bar")", "bla", "blub" );
    Daraus ergibt sich jedoch der Fehler das gemotzt wird "')' erwartet" was ja so auch stimmt, ich bräuchte nun also eine Möglichkeit das beim einlesen eines Strings kontrolliert wird ob "verbotene" Zeichen enthalten sind und die entsprechend auskommentiert/ignoriert werden

    ich würde versuchen, die nicht erlaubten zeichen im string mittels replace() zu ersetzen, http://selfhtml.teamone.de/javascript/objekte/string.htm#replace.

    gruss,
    wahsaga

    1. hi,

      var Tabellendaten = new Array( "foo("bar")", "bla", "blub" );
      Daraus ergibt sich jedoch der Fehler das gemotzt wird "')' erwartet" was ja so auch stimmt, ich bräuchte nun also eine Möglichkeit das beim einlesen eines Strings kontrolliert wird ob "verbotene" Zeichen enthalten sind und die entsprechend auskommentiert/ignoriert werden

      ich würde versuchen, die nicht erlaubten zeichen im string mittels replace() zu ersetzen, http://selfhtml.teamone.de/javascript/objekte/string.htm#replace.

      gruss,
      wahsaga

      Hallo,

      Danke fuer deine Antwort, jedoch sehe ich das Problem das die Platzhalter (zB %a) nicht statisch definiert sind. Also das ganze laeuft so ab:
      Es gibt einmal '%a = foo("bar")' die von einem externen Script definiert ist und dann in dieses Array geschrieben wird, wenn dieses geschrieben ist kommt durch diesen Platzhalter '%a' ein neuer String der dann anders aussieht, in der Praxis sieht das dann so aus:

      So sieht das im externen Script aus wie das in das betroffene html file gepostet wird:

        
      var Tabellendaten = new Array(  
       "%a", "%b", "%c"  
      );  
      
      

      Am Ende steht es dann so im html file:

        
      var Tabellendaten = new Array(  
       "foo("bar")", "bla", "blub",  
       "foo2"bar2")", "bla2", "blub2",  
       "foo3("bar3")", "bla3", "blub3",  
       "foo4("bar4")", "bla4", "blub4",  
       "foo5("bar5")", "bla5", "blub5"  
      );  
      
      

      und ich glaub da bringt mich replace() nicht so weit, oder? Ich hoffe ich konnte es halbwegs verstaendlich erklaeren was ich meine

      so long
      Sebastian K.

      1. hi,

        Es gibt einmal '%a = foo("bar")' die von einem externen Script definiert ist und dann in dieses Array geschrieben wird, wenn dieses geschrieben ist kommt durch diesen Platzhalter '%a' ein neuer String der dann anders aussieht, in der Praxis sieht das dann so aus:

        So sieht das im externen Script aus wie das in das betroffene html file gepostet wird:

        var Tabellendaten = new Array(
         "%a", "%b", "%c"
        );

        dann sorge dafür, dass schon das externe script beim ausgeben dieser platzhalter die nötige maskierung der anführungszeichen innerhalb der inhalte der platzhalter vornimmt.

        wenn du das ganze serverseitig generierst, dann muss die umsetzung auch schon serverseitig erfolgen, clientseitig ist es zu spät, da dort schon "kaputtes" javascript ankommt.

        gruss,
        wahsaga