Avatar billede jd Nybegynder
11. februar 2001 - 13:24 Der er 16 kommentarer og
1 løsning

str_replace() og innerWidth

Hey,

2 spm.:

1. Hvad har JavaScript der svarer til PHP\'s str_replace() ? (navnet siger vel sig selv)
2. Hvorfor returnerer document.write(window.innerWidth); \"undefined\" ?

- Jonas
Avatar billede emileej Nybegynder
11. februar 2001 - 13:44 #1
2.: Øhhh - fordi du er dum!
Nej vel? Hvilken browser siger det! (for den lyver)
Avatar billede jd Nybegynder
11. februar 2001 - 13:46 #2
IE 5.5
Avatar billede emileej Nybegynder
11. februar 2001 - 13:49 #3
??? [Skummelt]
Avatar billede emileej Nybegynder
11. februar 2001 - 13:50 #4
Har du et link?
Avatar billede jd Nybegynder
11. februar 2001 - 13:51 #5
Nej, det har jeg ikke...prøv selv!
Avatar billede jakoba Nybegynder
11. februar 2001 - 14:05 #6
2) window.innerWidth er kun til Netscape. den vatiabel findes ikke i IE (den har så document.body.clientWidth istedet).

1) det eneste jeg kender er lidt klumret.
    udskite streng for med streng efter i streng enstreng:
while ( enstreng.indexOf( for ) ) {
  enstreng = enstreng.substring(1,enstreng.indexOf(for)) + efter
            + enstreng.substring(enstreng.indexOf(for)+for.length);
};

mvh JakobA
Avatar billede jakoba Nybegynder
11. februar 2001 - 14:07 #7
vatiabel -> variabel
udskite -> udskifte
sku ha sovet noget længere.
Avatar billede jd Nybegynder
11. februar 2001 - 14:13 #8
JakobA->

1. Hvis der virkeligt ik er en lettere måde, kan jeg så ikke få dig til at skrive en funktion ,hvor det der skal udskiftes skal angives i 1. parameter, det det skal udskiftes med i 2., og der der skal udskiftes i i anden ?

2. Okay... det kigger jeg på! Hvad så med Opera osv. ?
Avatar billede jakoba Nybegynder
11. februar 2001 - 14:28 #9
2) ved ikke, gætter den er som IE.

1)
function jsRepStr( streng, before, efter ) {
  while ( streng.indexOf( before ) >= 0 ) {
    streng = streng.substring( 1 ,streng.indexOf(before) ) + efter
            + streng.substring( streng.indexOf(before)+before.length );
  };
  return streng;
}; //end jsRepStr( string, string, string ) -> string
Avatar billede jd Nybegynder
11. februar 2001 - 14:38 #10
2. Okay

1. Ser godt ud! Men jeg kan ikke helt få den til at funke!?
jeg vil gerne ha\' erstattet !@? med \\n - så jeg kalder den således::

jsRepStr(\"!@?\",\"\\n\",valUe);

Men resultatet bliver \"!@?\".. ?
Avatar billede jd Nybegynder
11. februar 2001 - 14:40 #11
Sorry... det mig mig/dig der havde byttet om på rækkfølgen af parametrene!

Mange tak for hjælpen!
Avatar billede jumper Nybegynder
11. februar 2001 - 15:44 #12
1. Hvad er der nu galt med strengNavn.replace() ?

minStreng = \"jeg hopper rundt\";
nyStreng = minStreng.replace(/hopper/,\"danser\");

Første argument er et regular expression, andet argument er en streng.

http://developer.netscape.com/docs/manuals/js/client/jsref/string.htm#1194258

2:

bredde = window.innerWidth || document.body.offsetWidth;

/Thor
Avatar billede jakoba Nybegynder
11. februar 2001 - 16:06 #13
jumper >> jeg så faktisk godt .replace; men turde ikke give mig ud i at konvertere fra strengparameter til regexp, forklare at  \"\\n\"  skal skrives som  /\\\\n/g  og uden citationstegn tak.

2) Jeg ku have svoret det var clientWidth, tak
Avatar billede jumper Nybegynder
11. februar 2001 - 16:10 #14
jakoba, når jd kan finde ud af php kender han sikkert også regular expressions (php er jo bygget på noget perl-crap ;)

clientWidth og offsetWidth er begge gyldige, ligesom der også findes en scrollWidth. Forskellen ligger bl.a. i om du måler scrollbaren med eller ej.

/Thor
Avatar billede jd Nybegynder
11. februar 2001 - 16:35 #15
Okay...interessant snak i har jer her :)

Ja, jeg kender til regular expressions, men hvordan med at escape tegn i javascript?
Hvordan ville det fx. se ud med !@? i første parameter? -for .replace() er da NOGET simplere...

Ang. bredden af vinduet, hvad skal jeg så bruge hvis jeg vil ha\' bredden på selve indsholdssiden uden scrollbars m.m. ?
Avatar billede jumper Nybegynder
11. februar 2001 - 16:43 #16
Generelt gælder det blot at du escaper tegn i Javascript med \\n. Regular expressions har nogle specialtegn du skal escape:

http://msdn.microsoft.com/scripting/jscript/doc/jsgrpregexpsyntax.htm

Det eneste specialtegn der er i !@? er ?-tegnet, derfor skriver vi blot

minStreng = minStreng.replace(/!@\\?/,\"\\n\");

Hvis du vil have den til at erstatte alle steder hvor der står !@? sætter du blot g switchen på dit regular expression, /!@\\?/g

minStreng = minStreng.replace(/!@\\?/g,\"\\n\");

/Thor
Avatar billede jd Nybegynder
11. februar 2001 - 16:48 #17
Mange tak for det!
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