23. august 2001 - 12:22
Der er
9 kommentarer og 1 løsning
Hvordan ændre man tegn i en javascriptstreng
fx. følgende streng gammel_streng = \'Her er en tekst \"bla\" den\'; teksten skal rettes til ny_streng = \'her er en tekst xxx bla xxx den\'; evt. med en løkke der kan tage alle tegn som fx %#+\" etc.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
23. august 2001 - 12:26
#1
Regular expressions er løsningen -- der er jeg ikke skrap !-)
23. august 2001 - 12:32
#2
Men du kan sagtens lave det uden med f.eks. for hvert tegn: newStringArray = sourceString.split(\"\\\"\"); //splitter for \" newString = newStringArray.join(\" xxx \");
23. august 2001 - 12:50
#3
Takker... Det var jo ikke så svært :-)
23. august 2001 - 13:45
#4
Kan man sætte en stopbetingelse på en whileløkke ? fx. while (der er et tegn x tilbage ) { replace(\'\\x\',\'y\'); }
23. august 2001 - 14:18
#5
Den der split/join-ting kan ikke gøre det, så bliver du nødt til at gøre det anderledes: while(streng.indexOf(\"\\\"\")>=0 && streng.indexOf(\"\\\"\")!=streng.length) { streng = streng.substring(0, streng.indexOf(\"\\\"\") - 1) + \" xxx \" + streng.substring(streng.indexOf(\"\\\"\") + 1, streng.length) } hth jes
23. august 2001 - 14:21
#6
Nej ikke umiddelbart. du kommer nok til at gøre noget lidt mere kompliceret. fx: <script language=\'javascript\'> var dinstr = \"den bla streng bla der bla skal blabla fixes\"; var tmp = dinstr.lastIndexOf( \"bla\" ); if ( tmp > -1 ) { var gemstr = dinstr.substring(tmp); // fra og med sidste bla. dinstr = dinstr.substring(0,tpm); // forenden af strengen. dinstr = dinstr.replace( /bla/g, \"ups\" ); // udskift alle bla med ups dinstr = dinstr + gemstr; // læg bagenden på igen }; alert( dinstr ); // forhåbentlig: \"den ups streng ups der ups skal upsbla fixes\" </script> mvh JakobA
23. august 2001 - 14:27
#7
Kan man forespørge om et tegn er indeholdt i en streng og få fx true eller false som svar ?
23. august 2001 - 14:51
#8
Det er i princippet det der gøres med: streng.indexOf(\"bla\"), den returnerer nemlig -1, hvis strengen ikke findes, så if (streng.indexOf(\"bla\")==-1){ ret = false }else{ ret = true }
23. august 2001 - 14:52
#9
Så er løsningen der :-) <HTML> <form action=\'default.asp\' name=\'check\' method=\'post\'> <input type=\'text\' size=\'20\' name=\'gammel_streng\'> <input type=\'text\' size=\'20\' name=\'ny_streng\'> <input type=\'button\' value=\'Gem\' OnClick=\'java script:checkinput();\'> </form> <script language=\"javascript\" type=\"text/javascript\"> function checkinput(){ while(document.check.gammel_streng.value.indexOf(\"\\\"\")>=0) { document.check.gammel_streng.value = document.check.gammel_streng.value.replace(\'\\\"\',\'2\');} document.check.ny_streng.value = document.check.gammel_streng.value; } </script> </HTML>
23. august 2001 - 14:53
#10
=;~}
Vi tilbyder markedets bedste kurser inden for webudvikling