Gustl: es geht nicht

Beitrag lesen

Hi Gustl,

hi micha,

den regulären Ausdruck musst du zur Laufzeit erstellen.

var suchtext = "hallo";
var regex    = new RegExp("\b" + suchtext + "\b");

  
liege ich damit richtig, dass regex dann den suchausdruck enthält? wenn ich mir den inhalt von regex ausgeben lasse, dann schaut der so aus:  
  
/[ein viereckiges kästchen]30[ein viereckiges kästchen]/ (das viereck kann ich hier nicht posten, weiss eh nicht was das für ein binärer wert sein soll.  
  
wie auch immer müsste ich also regex dann an match übergeben?  
  
`var ergebis = liste.match(regex);`{:.language-javascript}  
  
das klappt aber nicht. da ich mir den quelltext ja mit perl erstelle, sieht mein testcode so aus (wegen der \):  
  
~~~javascript
  
var liste = \" \"+inf[10]+\" \"+inf[11]+\" \"+inf[12]+\" \"+inf[13]+\" \"+inf[14]+\" \"+inf[15]+\" \"+inf[16]+\" \"+inf[17]+\" \"+inf[18]+\" \";  
  
var neue = liste.replace(/undefined/g, \"\");  
  
var irgendwas = \"30\";  
  
  var regex    = new RegExp(\"\\b\" + irgendwas + \"\\b\");  
  
  var ergebnis = neue.match(regex);  
  
  // $ ist funktion getElementById  
  \$\(\"schaumal\").innerHTML = \"Ausgabe: \" + ergebnis ;

ich bekomme aber immer null zurück, natürlich auch wenn "30" in neue vorhanden ist.

wenn ich hingegen einfach nur alles weglasse und:

var ergebnis = neue.match(/30/);

schreibe dann klappt das einwandfrei. aber dann wird nach 3 und 0 gesucht, oder? sobald ich aber:

var ergebnis = neue.match(/\b30\b/);

also mit wortgrenze, klappt es schon nicht mehr.

ich weiss nicht, soll ich aufgeben? es muss doch wohl möglich sein, ganz einfach

if ( liste.match(/\bvariable\b/) ) { dann tu was }

zu schreiben. aber das geht nicht und jetzt lauf ich im dunklen rum.

  • Gustl