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();
}
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å!
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?