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