[RegExp] Alle Positionen ermitteln (string.search)
Sascha
- javascript
Hi,
ich bin noch etwas angeschlagen von gestern, deshalb hoffe ich, dass ich keinen themenrelevanten Thread übersehen habe...
Ich möchte gerne eine CSS Datei per XMLHttpRequest einlesen und den .responseText mit RegExp weitervarbeiten.
Ich möchte dabei alle Positionen eins Suchmusters herausfiltern. Leider liefert mir .search nur die erste Position des Suchmusters. /g brachte leider auch nicht das gewünschte Ergebnis :(
css.onreadystatechange = function ()
{
if(css.readyState == 4)
{
var response = css.responseText;
var cssAttribute = /min-height/g;
alert(response);
test = new Array()
test = response.search(cssAttribute)
alert(test);
}
}
css.send(null);
PS: test.length gibt nur ein undefined aus.
Wo liegt mein (gedanklicher) Fehler?
Hallo Sascha,
Wo liegt mein (gedanklicher) Fehler?
Das die Funktion http://de.selfhtml.org/javascript/objekte/string.htm#search@title=search eben nur "die Position des ersten Treffers zurück (ge)liefert". Eine Lösung ist bspw. http://de.selfhtml.org/javascript/objekte/string.htm#index_of@title=indexOf; mit dem 2. Parameter könntest Du Dein Ziel erreichen.
Mit freundlichem Gruß
Micha
Hi,
Ich möchte gerne eine CSS Datei per XMLHttpRequest einlesen und den .responseText mit RegExp weitervarbeiten.
Ich möchte dabei alle Positionen eins Suchmusters herausfiltern. Leider liefert mir .search nur die erste Position des Suchmusters. /g brachte leider auch nicht das gewünschte Ergebnis :(
search liefert immer nur den ersten Treffer.
var x = "blabluble";
var re = /bl./g;
var ergebnis= re.exec(x);
while (ergebnis !== null)
{
alert(ergebnis.index + ":" + ergebnis[0]);
ergebnis = re.exec(x);
}
Statt des alerts kannst Du die Positionen natürlich auch in einem Array aufsammeln.
Wenn Du bereit bist, den Browser per Taskmanager zu schließen, kannst Du bei obigem Code mal das g nach dem / weglassen ...
cu,
Andreas