Regexpression mit Javascript
Andreas
- javascript
0 Manyak Online0 Bio0 Saadat0 Daniel Thoma
Ich habe einen Text, in dem ich ALLE vorkommenden Kommas, denen ein Buchstabe folgt, durch ein Komma und ein Leerzeichen und dann den folgenden Buchstaben ersetzen moechte.
Hier ein Codeschnippsel, der soweit laeuft, das das ERSTE gefunden Komma korrekt ersetzt wird:
---schnipp---
<script language="JavaScript">
erst = "aa,bb cc,dd";
dann= erst.replace(/,(\w.+)/g,", $1");
document.write(dann);
</script></body></html>
---schnipp---
Eigentlich sollten doch durch den Modifikator 'g' der gesamte String durchsucht werden und dann dementsprechend ersetzt werden. Nur das funktioniert bei mir nicht.
Kann mir bitte jemand sagen,wo der Fehler ist bzw. einen anderen moeglichen loesungsvorschlag unterbreiten?
Danke Andreas
hi andreas,
hier http://manyak.online.de/
versuch's mal hiermit
var reg = new RegExp("(,)(\S)", "g");
bye,
manyak online
http://manyak.online.de/
Hi,
var reg = new RegExp("(,)(\S)", "g");
var reg = new RegExp(",","g"); sollte es auch tun
ansonsten ist es nicht sonderlich ratsam, regexe in JS anzuwenden - die sind sehr fehlerhaft
implementiert, gerade im MS-Bereich.....
Du solltest ueberlegen, auf "herkoemmliche" String-Funktionen zurueck zu greifen.
Gruss,
Christian
http://wwwtech.de
Hi,
var reg = new RegExp("(,)(\S)", "g");
var reg = new RegExp(",","g"); sollte es auch tun
das wird es leider nicht tun.
ansonsten ist es nicht sonderlich ratsam, regexe in JS anzuwenden - die sind sehr fehlerhaft
implementiert, gerade im MS-Bereich.....
Du solltest ueberlegen, auf "herkoemmliche" String-Funktionen zurueck zu greifen.
Gruss,
Christian
http://wwwtech.de
var reg = new RegExp("(,)(\S)", "g");
Damit hab ich auch schon mal rumprobiert, aber wann kommt denn die eigentliche Ersetzung in dem String. Das kapier ich nicht bzw. stelle mich zu doof an.
Kannst du mir evtl. ein Beispiel schicken?
Danke Andreas
Sup!
Wenn ich mich nicht irre, dann ersetzt replace() sowieso alle Treffer des Ausdrucks, von daher ist das g wahrscheinlich total unnötig und evtl. ein Fehler.
Wenn Du das mit dem g machen willst, ist vielleicht string.exec(regexp) besser geeignet.
Gruesse,
Bio
Hier ist eine kleine Funktion, die ein beliebig oft vorkommendes vordefiniertes Zeichen in einer Zeichenkette durch ein anderes ersetzt. Falls Du das meintest, dann ist Dir damit geholfen, hoffe ich.
<script language="JavaScript">
var erst = "la la la";
var dann = "";
var zuersetzen = " ";
var ersetzendurch = "+";
function suchenersetzen(){
for(i=0; i < erst.length ;i++)
if(erst.charAt(i) == zuersetzen)
{ dann = dann + ersetzendurch}
else
{dann = dann + erst.charAt(i);}
alert(dann);
}
suchenersetzen();
</script>
Gruß
Saadat
Hallo Andreas
Also dieser Code funktioniert sowohl mit NN als auch IE:
var erst = "aa,bb cc,dd";
var dann= erst.replace(/,(\w)/g,", $1");
alert(dann);
MfG
Daniel