Avatar billede skildpadden Nybegynder
30. juli 2006 - 22:17 Der er 6 kommentarer og
1 løsning

Fjern \ som første og sidste tegn i streng

Jeg har f.eks. strengen "\dokumenter\abc\"

Jeg ønsker et script som fjerner \ som første og sidste tegn, men ikke det som er mellem "dokumenter" og "abc"

Det kan også ske at strengen f.eks. ser således ud "dokumenter\abc" - i så fald skal der ikke fjernes noget.
Avatar billede mclemens Nybegynder
30. juli 2006 - 22:25 #1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type"

content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
streng="\\dokumenter\\abc\\";

if(streng.indexOf("\\")==0)streng=streng.substr(1);

alert(streng);





streng="dokumenter\\abc\\";

if(streng.indexOf("\\")==0)streng=streng.substr(1);

alert(streng);


</script>

</head><body>

</body></html>
Avatar billede skildpadden Nybegynder
30. juli 2006 - 22:28 #2
mclemens: vil du forklare hvad de enkelte linier gør?
Avatar billede mclemens Nybegynder
30. juli 2006 - 22:32 #3
Prøver lige igen... (manglede den til sidst)



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
streng="\\dokumenter\\abc\\";

if(streng.indexOf("\\")==0)streng=streng.substr(1);
if(streng.charAt(streng.length-1)=="\\")streng=streng.substr(0,streng.length-1);

alert(streng);





streng="dokumenter\\abc\\"; // sætter en streng

if(streng.indexOf("\\")==0)streng=streng.substr(1); // hvis første tegn er \ sættes strengens værdi til alle tegn efter første tegn

if(streng.charAt(streng.length-1)=="\\")streng=streng.substr(0,streng.length-1); // hvis sidste tegn i strengen er \\ sættes strengens værdi til alle tegn undtagen det sidste tegn

alert(streng);




streng="dokumenter\\abc";

if(streng.indexOf("\\")==0)streng=streng.substr(1);
if(streng.charAt(streng.length-1)=="\\")streng=streng.substr(0,streng.length-1);

alert(streng);


</script>

</head><body>

</body></html>
Avatar billede mclemens Nybegynder
30. juli 2006 - 22:34 #4
hmmm, lægger lige forklaringen lidt mere overskueligt op ...

streng="dokumenter\\abc\\"; // sætter en streng

if(streng.indexOf("\\")==0)streng=streng.substr(1);
.... ^ hvis første tegn er \ - ^ sættes strengens værdi til alle tegn efter første tegn

if(streng.charAt(streng.length-1)=="\\")streng=streng.substr(0,streng.length-1);
.... ^ hvis sidste tegn i strengen er \\  ^ sættes strengens værdi til alle tegn undtagen det sidste tegn

alert(streng);
^ sæt en alert der returnerer værdien
Avatar billede skildpadden Nybegynder
30. juli 2006 - 22:36 #5
Super!

Tak for hjælpen...
Avatar billede mclemens Nybegynder
30. juli 2006 - 22:37 #6
Velbekom, og tak for point :o)
Avatar billede mclemens Nybegynder
30. juli 2006 - 23:22 #7
Kaster lige en regexp også ... dog er jeg elendig til sådan noget...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

streng="dokumenter\\abb\\chher6y\\tryu4gh";
resultat="$2$4";

streng=streng.replace(/([\\]*)(([\w]+[\\])+)([\w]+)[\\]*/,resultat);

alert(streng);




</script>

</head><body>

</body></html>




... burde være nogenlunde:
resultat="$2$4"; // resultat er værdier i nr 2 og nr 4 parentes

- splitet linjen lidt op
streng=streng.replace(/([\\]*) ingen \ eller flere fra start af
(([\w]+[\\])+) efterfulgt af a-zA-Z0-9_ som et eller flere tegn - i 1 eller flere omgange

([\w]+) efterfulgt af a-zA-Z0-9_ i minimum en omgang

[\\]*/,resultat); afsluttet med ingen \ eller evt flere...


- værdierne der fandtes i parentes 2 og 4 udgør så strengen ... men som sagt regexp er ikke noget jeg leger så tit med ... den anden jeg lavede er nok også den mest simple :o) (ville bare lige kaste denne også)
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