webForumDet fria alternativet
Logga in / Bli medlem

Tvärt om!

JavaScript

8 svar · 256 visningar · startad av obbin

Medlem sedan juni 20059 inlägg
Trådstart#1

Finns det något sätt att vända på detta scriptet, d.v.s att man översätter "%" tecken till vanliga ist. för tvärt om?

<script type="text/javascript">
String.prototype.eescape = function(){
var escaped="";
for(var n=0;n<this.length;n++){ escaped+="%"+((this.charCodeAt(n)<16)?"0"+this.charCodeAt(n).toString(16):this.charCodeAt(n).toString(16)); }
return escaped;
}

function makemaillink(str){
return ""+str.eescape()+"";
}
</script>
<form>
<table>
<tr><td>Dinatecken att översätta till "kodad form":</td><td><input type="text" name="email" style="width:200px;"/></td></tr>
<tr><td> </td><td><input type="button" value="Generera" onclick="this.form.eescaped.value=makemaillink(this.form.email.value);"/></td></tr>
<tr><td>Resultat:</td><td><input type="text" name="eescaped" style="width:600px;"/></td></tr>
</table>
</form>

Tack på förhand!

Medlem sedan juni 2004533 inlägg
#2

Använd funktionen unescape.

Medlem sedan juni 20059 inlägg
#3

Jag är inte så haj på javascript kan du förklara lite mer/skriva kod?
det vore jätteschyst!

Medlem sedan juni 2004533 inlägg
#4

Det är en helt vanlig funktion:

var kodad_sträng = "%48%65%6A%31";
var avkodad_sträng = unescape(kodad_sträng);

Edit:
Städade lite i koden:

<script type="text/javascript">

String.prototype.eescape = function() {
	var escaped = '';
	for(var n=0; n<this.length; n++) {
		escaped += "%" + (this.charCodeAt(n) < 16 ? '0' : '') + this.charCodeAt(n).toString(16);
	}
	return escaped;
}

function makemaillink(str){
	return str.eescape();
}

</script>
Medlem sedan aug. 20039 340 inlägg
#5

Men det var ju kanske onödigt att skriva en egen escape-funktion... DCet finns ju en inbyggd i javascript: T ex

alert(escape("åäö"))
Medlem sedan juni 2004533 inlägg
#6

nitro2k01 skrev:

Men det var ju kanske onödigt att skriva en egen escape-funktion...

Inte ifall man vill att alla tecken ska kodas. Funktionen escape kodar bara vissa tecken.

Medlem sedan juni 20059 inlägg
#7

Html-stylen då?

Hur "unescapar" man "htmlbosktäver" ex. #&115;??

Medlem sedan juni 2004533 inlägg
#8

Gör ett regular expression som matchar koden, och gör en ersättning som anropar en funktion för varje ersättning. Gör funktionen så att den tar emot koden och returnerar tecknet.

Medlem sedan juni 20059 inlägg
#9

hur gör man en såda funktion då, är inte helt 100 på javascript och forms

847 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
721 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)