25. januar 2007 - 16:45
Der er
45 kommentarer og 1 løsning
Udskift special-tegn.
Hej Eksperter. Jeg har lavet dette script i PHP, men det gør ikke helt som jeg vil, så jeg ville høre om man kunne lave noget ligende i JavaScrip. Det den skal kunne er, at erstatte æ, ø og å med æ, ø, å, så det også vises i teksten. Eks. input: Det ville glæde mig, at have en ø. output: Det ville glæde mig, at have en ø. Det er lige meget om det er i et textarea, jeg vil bare gerne have, så det ender i en variabel. // mcardle
Annonceindlæg fra Barco
25. januar 2007 - 16:45
#1
Hov glemte mit script...: <?php if(!empty($_POST["prePost"])){ $prePost = $_POST["prePost"]; $prePost = str_replace("æ","æ",$prePost); $prePost = str_replace("ø","ø",$prePost); $prePost = str_replace("å","å",$prePost); $output = $prePost; } ?>
25. januar 2007 - 17:29
#2
var str="Det ville glæde mig, at have en ø."; str = str.replace(/ø/g,"ø"); str = str.replace(/æ/g,"æ"); str = str.replace(/å/g,"å"); document.write(str);
25. januar 2007 - 17:39
#3
Det virker stadig ikke.
http://www.mcardle-design.dk/projects/tools/replace_spc_chars/index.php Her er koden:
<script type="text/javascript">
function doText(){
var str = document.getElementById("preText").innerHTML;
str = str.replace(/ø/g,"ø");
str = str.replace(/æ/g,"æ");
str = str.replace(/å/g,"å");
document.getElementById("postText").innerHTML = str;
}
</script>
<span>Insæt din tekst.:</span><br />
<textarea id="preText"></textarea>
<br />
<br />
<span>Output.:</span><br />
<textarea id="postText"></textarea>
<br />
<input type="button" onclick="doText();" value="Replace" />
25. januar 2007 - 17:40
#4
Den udskriver bare æ som æ osv.
25. januar 2007 - 17:46
#5
Prøv at udskifte document.getElementById("postText").innerHTML = str; med alert(str); Så kan du se om den er udskiftet ;)
25. januar 2007 - 17:48
#6
Det er den ikke. Den formatere æ, så den udskriver æ osv.
26. januar 2007 - 00:19
#7
Hmm - så skal du vel: str = str.replace(/ø/g,"&oslash;"); str = str.replace(/æ/g,"&aelig;"); str = str.replace(/å/g,"&aring;");
26. januar 2007 - 00:22
#8
Stadig det samme...
26. januar 2007 - 00:23
#9
Hvis den formatere ø så formatere den vel også &oslash;
26. januar 2007 - 00:24
#10
Så tror jeg ikke jeg forstår spm.
26. januar 2007 - 00:25
#11
Men udskiftning foregår jo kun én gang, så &oslash; _ses_ som ø
26. januar 2007 - 00:27
#12
Det jeg vil lave, er en udskift-funktion, så når jeg skriver æ, ø og å, så erstatter den det med æ, ø og å
26. januar 2007 - 00:27
#13
F.eks. fra et textarea til et andet.
26. januar 2007 - 00:28
#14
Det gør førstnævnte jo også, men din browser fortolker det og _viser_ det som et æ, ø, å igen.
26. januar 2007 - 00:28
#15
Jeg forstår ikke hvorfor det ikke virker. I min IE7 og Firefox 2 virker dette: var t = "æøå"; t = t.replace(/æ/g,"æ").replace(/ø/g,"ø").replace(/å/g,"å"); document.write(t); alert(t); Den alerter æøå og skriver skriver æøå i dokumentet (som i virkeligheden er æøå)
26. januar 2007 - 00:29
#16
str = str.replace(/ø/g,"&oslash;"); str = str.replace(/æ/g,"&aelig;"); str = str.replace(/å/g,"&aring;"); Vil gøre, at et ø fortolkes til ø og vises som sådan - ikke som ø
26. januar 2007 - 00:32
#17
Den skal skrive det i documentet og ikke kun i en alert.
26. januar 2007 - 00:36
#18
Prøv at set dette script ind og så skal den gerne skrive f.eks. æ i nummer to textarea: <script type="text/javascript"> function doText(){ var t = document.getElementById("preText").innerHTML; t = t.replace(/æ/g,"æ").replace(/ø/g,"ø").replace(/å/g,"å"); document.getElementById("postText").innerHTML = t; } </script> <span>Insæt din tekst.:</span><br /> <textarea id="preText"></textarea> <br /> <br /> <span>Output.:</span><br /> <textarea id="postText"></textarea> <br /> <input type="button" onclick="doText();" value="Replace" />
26. januar 2007 - 00:39
#19
<script type="text/javascript"> function doText(){ var t = document.getElementById("preText").innerHTML; t = t.replace(/æ/g,"&aelig;").replace(/ø/g,"&oslash;").replace(/å/g,"&aring;"); document.getElementById("postText").innerHTML = t; } </script> <span>Insæt din tekst.:</span><br /> <textarea id="preText"></textarea> <br /> <br /> <span>Output.:</span><br /> <textarea id="postText"></textarea> <br /> <input type="button" onclick="doText();" value="Replace" /> Dét virker hos mig!
26. januar 2007 - 00:40
#20
Mærkelig... Ved du om det er noget server-opsætning der spiller ind... Det er min egen server.
26. januar 2007 - 00:42
#21
Du har bemærket mine ændringer?
26. januar 2007 - 00:43
#22
Nej, hvad har du lavet om?
26. januar 2007 - 00:44
#23
Jo.. &
26. januar 2007 - 00:46
#24
Men det virker stadig ikke hos mig. Findes der ikke et sted, man kan slå & til og fra og selvfølgelig alle de andre &et eller andet; i php.ini eller conf?
26. januar 2007 - 00:47
#25
26. januar 2007 - 00:48
#26
Præcis, hvad jeg ønsker...
26. januar 2007 - 00:48
#27
Ok - så kan jeg ikke hjælpe mere. Det er overstående kode.
26. januar 2007 - 00:49
#28
Okay... Tak for hjælpen... Smid et svar, så får du dine velfortjente points.
26. januar 2007 - 00:50
#29
26. januar 2007 - 00:51
#30
t = t.replace(/�/g,"&aelig;").replace(/�/g,"&oslash;").replace(/�/g,"&aring;"); Bemærk ? - du skal sørge for at servere som iso-8859-1 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
26. januar 2007 - 00:51
#31
Ja, hvad nu?
26. januar 2007 - 00:52
#32
Måske kan man: <script type="text/javascript"> function doText(){ var t = document.getElementById("preText").innerHTML; t = t.replace(/æ/g,"&aelig;").replace(/ø/g,"&oslash;").replace(/å/g,"&aring;"); document.getElementById("postText").innerHTML = t; } </script> <span>Insæt din tekst.:</span><br /> <textarea id="preText"></textarea> <br /> <br /> <span>Output.:</span><br /> <textarea id="postText"></textarea> <br /> <input type="button" onclick="doText();" value="Replace" /> Men utestet.
26. januar 2007 - 00:54
#33
Kan stadig ikke få det til at virke... Prøver mig lidt frem endnu... Endnu engang, tak for hjælpen.
26. januar 2007 - 00:54
#34
Din server sender stadig som UTF-8. Der må være et sted i php.ini eller httpd.conf hvor det kan ændres.
26. januar 2007 - 00:55
#35
Jep - held og lykke. Og god nat.
26. januar 2007 - 00:56
#36
Jeps, skal det bare ændres til ovenstående charset?
26. januar 2007 - 01:02
#37
Ja, iso-8859-1 indeholder æ, ø og å.
26. januar 2007 - 14:59
#38
26. januar 2007 - 15:05
#39
Ole -> Ok, skal man så sigte efter de to latin-1? \XXX, \xXX
26. januar 2007 - 15:07
#40
æ = E6, ø = F8, å = E5, forresten
26. januar 2007 - 15:13
#41
Du kan evt. bruge oktaltal-værdien for tallets keyCode ... f.eks: alert("\370")
26. januar 2007 - 15:18
#42
Ok - det lader også til at HEX-værdierne virker: \xE6 etc...
26. januar 2007 - 15:20
#43
Yups ... du kan bruge begge ;o)
26. januar 2007 - 17:31
#44
Jeg fik ellers sat mit charset til iso-8859-1 og det virker nu, men hvis jeg bruger latin 1, kan jeg så godt skrive æøå. Jeg ved godt jeg burde bruge æ og de andre, men kan man?
29. januar 2007 - 15:07
#45
Nej, du kan ikke bruge HTML-entities som 'æ' i JavaScript. Du skal bruge enten hex- eller oktal-værdier
29. januar 2007 - 16:57
#46
Okay, tak for hjælpen.
Vi tilbyder markedets bedste kurser inden for webudvikling