Avatar billede elskermad.dk Nybegynder
08. november 2005 - 20:58 Der er 13 kommentarer og
1 løsning

slette alle ,'ere til sidst i strengen

Hej eksperter!

Hvordan sletter jeg alle tegn af en bestemt type til sidst i en variable?

Altså hvis den fx hedder $tekst = "fdsfjs,,,,;"; så vil jeg gerne have fjernet alle ,'erne til sidst så den hedder $tekst = "fdsfjs"

På forhånd tak :)
Avatar billede jakobdo Ekspert
08. november 2005 - 20:59 #1
Du kan bruge str_replace()
str_replace(",","",$tekst);
Avatar billede jakobdo Ekspert
08. november 2005 - 21:01 #2
Eller en funktion:
function fjernKarakter($tegn,$tekst)
{
return str_replace($tegn,"",$tekst);
}

$tekst = fjernKarakter(",","fdsfjs,,,,;");
Avatar billede elskermad.dk Nybegynder
08. november 2005 - 21:10 #3
jeg må ikke fjerne alle, der kan være brugt ,'er inde i teksten som ikke skal fjernes
Avatar billede nielle Nybegynder
08. november 2005 - 21:19 #4
$tekst = "fdsfjs,,,,;";
$tekst = rtrim($tekst, ",");
Avatar billede nielle Nybegynder
08. november 2005 - 21:20 #5
... dur selvfølgeligt ikke hvis der også er et ';' - eller var det en tastefejl?
Avatar billede elskermad.dk Nybegynder
08. november 2005 - 21:24 #6
hehe ja det var en tastefejl da jeg vist fik ramt shift for tidligt :P ser smart ud!

hvis du kan hjælpe med denne ville jeg blive ekstra glad, ellers opretter jeg et nyt spørgsmål så du også kan få point for den:

hvad hvis der er to eller flere ,'er efter hinanden inde i teksten, kan man så lave den om til en enkel? det ville være kanon :)

men ellers så læg et svar for den her!
Avatar billede nielle Nybegynder
08. november 2005 - 21:26 #7
$tekst = preg_replace("/,+/", ",", $tekst);
Avatar billede elskermad.dk Nybegynder
08. november 2005 - 21:28 #8
kanon :P men du glemte svaret ;)
Avatar billede jakobdo Ekspert
08. november 2005 - 21:29 #9
Du kan bruge min funktion igen:
$tekst = fjernKarakter(",,","fdsfjs,,,,;");

Og snakker vi generelt streng replacement, så er str_replace hurtigere end preg_replace()
Avatar billede nielle Nybegynder
08. november 2005 - 21:38 #10
jakobdo> Din funktion virker nu ikke helt som ønsket. F.eks. vil teksten:

"fds,,,fjs"

- blive til "fds,,fjs" og ikke til "fds,fjs" som ønsket.
Avatar billede jakobdo Ekspert
08. november 2005 - 21:42 #11
Min første funktion ville virke på det som der blev spurgt om:
Altså hvis den fx hedder $tekst = "fdsfjs,,,,;"; så vil jeg gerne have fjernet alle ,'erne til sidst så den hedder $tekst = "fdsfjs"

(nu vil jeg bare surmule) :o)
Avatar billede nielle Nybegynder
08. november 2005 - 21:53 #12
Ja, men den efterspørgte løsning skulle jo altså kun slette dem der var i enden af strengen - ikke dem som var inde midt i strengen eller i starten. >:^)
Avatar billede nielle Nybegynder
08. november 2005 - 21:54 #13
... og et svar :^)
Avatar billede johan.o Nybegynder
08. november 2005 - 23:26 #14
$tekst=rtrim($tekst,",");
while($tekst!=str_replace(",,",",",$tekst)) { $tekst=str_replace(",,",",",$tekst); }

Jeg ved ikke om der er den store forskel, andet end at dette fylder mere :) og ikke bruger de 'langsomme' :) reg_exp.

Mvh. Johan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester