webForumDet fria alternativet

Tvärt om!

8 svar · 254 visningar · startad av obbin

obbinMedlem sedan juni 20059 inlägg
#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!

GuffaMedlem sedan juni 2004533 inlägg
#2

Använd funktionen unescape.

obbinMedlem 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!

GuffaMedlem 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>
nitro2k01Medlem sedan aug. 20039 342 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("åäö"))
GuffaMedlem 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.

obbinMedlem sedan juni 20059 inlägg
#7

Html-stylen då?

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

GuffaMedlem 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.

obbinMedlem sedan juni 20059 inlägg
#9

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

126 ms totalt · 3 externa anrop · v20260731065814-full.37765c92
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)