webForumDet fria alternativet
Logga in / Bli medlem

JavaScript --> C#? (.Net)

.NET

8 svar · 811 visningar · startad av echoSwe

Medlem sedan nov. 20041 189 inlägg
Trådstart#1

Tja!

Finns det något sätt att skriva den här koden i C#?

function repl(){
    var elm = document.getElementById("_ctl1_body"); //letar upp rätt nod
	
	elm.value = elm.value.replace(/\n/g, "<br>\n"); //ersätter radbyte med <br>
	String.prototype.htmlencode = function() //instansierar funktionen som ska användas
	{
		var e="";
		for (var n=0; n < this.length; n++)
		{ 
			//e becomes an array when string::match() is used
//regex som ersätter allt som inte finns i regex-et. Detta för att hitta å, ä och ö
			e += (!this.substring(n,n+1).match(/[a-zA-Z0-9\n<br>]/)) ? "&#" + this.charCodeAt(n) + ";":this.substring(n,n+1);  
		}
		return e;
	}
	elm.value=elm.value.htmlencode();
}
Medlem sedan jan. 2004501 inlägg
#2

registerStartUpScript eller registerScriptBlock kan du använda för att asp.net ska kunna slänga ut javascript.

Medlem sedan nov. 20041 189 inlägg
#3

Jag tänkte mer på om man kan överföra funktionaliteten till C#?

Medlem sedan nov. 20041 189 inlägg
#4

Ingen som kan svara?

Medlem sedan jan. 2004501 inlägg
#5

är det string replace du är ute efter....

minString.Replace(här skirver man vilkoret);

Medlem sedan juli 20011 304 inlägg
#6

Exakt vad vill du åstadkomma? Byta ut viss tecken på sidan?

Medlem sedan nov. 20041 189 inlägg
#7

Ja. Byta ut å, ä och ö mot de html eller hexidecimala motsvarigheterna. Scriptet ovan byter ut det mot de hexadecimala, vilket funkar bra, men jag har hellre html-motsvarigheten. & auml; istället för & #228; alltså, helst.
(var tvungen att lägga till mellanslag mellan & och resten för att forumet ska visa tecknen)

ASP .Net tar alltså bort å, ä och ö istället för att skriva dem som ovan, alltså!

Medlem sedan juni 20019 024 inlägg
#8
Server.HtmlEncode(argument)

?

Sedan har du säkert fel teckenkodning om svenska tecken försvinner.

Medlem sedan nov. 20041 189 inlägg
#9

Pace: Ändrade det, och det funkade, tack.

Jag kollade upp string.Replace() och skrev den här koden:

public class ReplaceTest2 
{
	public static void Main()
	{
		Console.Write("Let's try replace å, ä and ö with their HTML codes.\nPlease write your string:");
		string strInput = Console.ReadLine();
		
		//let's replace it
		string[] strOldSigns = new string[] { "å", "ä", "ö" };
		string[] strNewSigns = new string[] { "& aring;", "& auml;", "& ouml;" };
		
		for (int i = 0; i < strOldSigns.Length; i++)
		{
			strInput = strInput.Replace(strOldSigns[i], strNewSigns[i]);
		}
		
		Console.WriteLine(string.Format("The new text is: {0} '{1}'", Environment.NewLine, strInput));
	}
	
}

observera att återigen har jag lagt till ett mellanslag mellan & och tex. auml; för att forumet ska visa det som det är tänkt.

Finns det möjligtvis en smidigare lösning på detta, eller måste jag skriva in alla specialtecken?

Någon som vet hur detta med svenska tecken i koden fungerar på en engelsk server?

Även: hur sätter man strängpar i en tvådimensionell array? Så att jag slipper ha två endimensionella strängar för teckenparen och kan ha en enda istället?

lade till, för att få det att funka:

		<globalization fileEncoding="iso-8859-1" 
requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" 
culture="sv-SE" uiCulture="sv-SE" />

//Henke

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