Forum > ASP.NET 1.x och 2.x > Språk - C#
Hejsan, har precis gått över till .Net och ska byta ut radbrytningar och diverse BBCoderna till HTML och jag undrar hur jag gör detta lättast.
Jag vill ju ha en void eller liknande som sköter allt.
Det jag har nu är.
<%# Server.HtmlEncode(Eval("blogText").ToString()).Replace(Environment.NewLine, "<br />")%>Men som sagt vill jag ha det i en void, men har absolut inte en aning om hur jag ska göra.
| Skriv utNågot liknande detta kanske?
public static string RegEx(string text)
{
text = System.Web.HttpContext.Current.Server.HtmlEncode(text);
text = text.Replace(System.Environment.NewLine, "<br />");
return text;
}
Redigerad av Padchi
Anledning: Glömde return
void = sub => Event, vilket inte retunera någon data, det är som Padchi skriver, du skall göra det i en vanlig funktion eller en static funktion om du inte vill instansera den.
newline, vbcrlf som man är van vid i klassisk ASP är inte RegExp, = nyrad i regexp,
att använda regexp i c#:
string resultString = null;
try {
resultString = Regex.Replace(subjectString, "RegExpPattern", "ReplaceValue", RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
Aha tackar för det!
Men om jag tex vill ha detta till HTML
[img src=Länk title=Rubrik]
Hur ska jag plocka ut det i .Net, dvs få fram "Länk" och "Rubruk" så att jag kan använda dem i HTML sedan.?
regexp mönstret:
\[img src=([^]+) title=([^\]]+)\]
Men då får inte src innehålla ett mellanslag.
Jag får detta felet när jag änvänder den koden.
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1009: Unrecognized escape sequence
public string RegExStr(string text)
{
text = System.Web.HttpContext.Current.Server.HtmlEncode(text);
text = text.Replace(System.Environment.NewLine, "<br />");
try
{
text = Regex.Replace(text, "\[img src=([^]+) title=([^\]]+)\]", "<a href='$1' title='$2' rel='lightbox[" + DateTime.Today + "]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
}
catch (ArgumentException ex)
{
// Syntax error in the regular expression
}
return text;
}
du har inget mellanslag vid src=([^ ]+) byt den till ([^\s]+) istället eftersom wysiwyg editorn verkar klippa den.
Jag får fortfarande samma fel.
VWD klagar på "\[img src=([^\s]+) title=([^\s]+)\]".
Har inte den minsta koll på detta med RegEx så är tacksam för hjälp!
uttrycket är rätt. skall det inte vara typ @ framför "sträng" sak i c# när det
Redigerad av voigtan
Anledning:
string resultString = null;
try {
resultString = Regex.Replace(subjectString, @"\[img src=([^\s]+) title=([^\s]+)\]", "<a href=$1' title='$2' rel='lightbox[\" + DateTime.Today + \"]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
Voigtan: Jo det ska det.
Så det rätta är @"\[img src=([^\s]+) title=([^\s]+)\]"
Jo du hade rätt.
Men det byts fortfarande inte ut till den koden jag ville till. Någon ide?
Vad är det för text du försöker då?
Redigerad av voigtan
Anledning:
string resultString = null;
try {
resultString = Regex.Replace(subjectString, @"\[img src=([^\s]+) title=([^\s]+)\]", "<a href=$1' title='$2' rel='lightbox[\" + DateTime.Today + \"]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
Nu testade jag med
hej på dig [img src=http://its-time.se/upload/skrivbord2008.jpg title=Skrivbordsbakgrunden just nu.] test
hej på dig [img src=asd title=asd] test
Det fungerade med din text men inte med min.
Redigerad av Evl
Anledning:
eftersom du har ändrat mitt orginal uttryck.
\[img src=([^\s]+) title=([^\]]+)\]
Ah! Tackar! Bra att det finns folk som kan sakerna bättre än mig ;)