webForumDet fria alternativet

JavaScript --> C#? (.Net)

8 svar · 811 visningar · startad av echoSwe

echoSweMedlem sedan nov. 20041 189 inlägg
#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();
}
asmodieMedlem sedan jan. 2004501 inlägg
#2

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

echoSweMedlem sedan nov. 20041 189 inlägg
#3

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

echoSweMedlem sedan nov. 20041 189 inlägg
#4

Ingen som kan svara?

asmodieMedlem sedan jan. 2004501 inlägg
#5

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

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

JonMedlem sedan juli 20011 304 inlägg
#6

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

echoSweMedlem 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å!

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

?

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

echoSweMedlem 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

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