📄 formatter.cs
字号:
namespace FreeTextBoxControls.Support
{
using FreeTextBoxControls.Support.Sgml;
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
public class Formatter
{
public Formatter()
{
this.events = new ArrayList();
this.events.Add("onclick");
this.events.Add("onmousedown");
this.events.Add("onmouseover");
this.events.Add("onmouseout");
this.events.Add("onmouseup");
}
private string FixTag(Match tagMatch)
{
bool flag1 = true;
Regex regex1 = new Regex(" ([-\\w]+)(=(\"[^\"]*\"|'[^']*'|(#|_)?\\w+))?");
string text1 = tagMatch.Value;
string text2 = "";
if (text1.IndexOf("</") == 0)
{
return text1.ToLower();
}
string text3 = tagMatch.Groups[1].Value.ToLower();
text2 = "<" + text3;
MatchCollection collection1 = regex1.Matches(text1);
foreach (Match match1 in collection1)
{
string text4 = match1.Value;
string text5 = match1.Groups[1].Value;
string text6 = match1.Groups[3].Value.TrimStart(new char[] { '"' });
text6 = text6.TrimEnd(new char[] { '"' });
if (!(flag1 && this.events.Contains(text5)))
{
string text8 = text2;
text2 = text8 + " " + text5.ToLower() + "=\"" + text6 + "\"";
}
}
return (text2 + ">");
}
public string HtmlCodesToHtmlSymbols(string input)
{
bool flag1 = false;
string text1 = string.Empty;
StringBuilder builder1 = new StringBuilder();
foreach (char ch1 in input)
{
switch (ch1)
{
case '&':
builder1.Append(text1);
text1 = "&";
flag1 = true;
break;
case ';':
if (!flag1)
{
builder1.Append(ch1);
break;
}
text1 = text1 + ch1;
if (((text1.Length >= 2) && (text1[1] == '#')) && (text1[2] != ';'))
{
text1 = ((char) ((ushort) int.Parse(text1.Substring(2, text1.Length - 3)))).ToString();
}
builder1.Append(text1);
text1 = string.Empty;
flag1 = false;
break;
default:
if (flag1)
{
text1 = text1 + ch1;
}
else
{
builder1.Append(ch1);
}
break;
}
}
builder1.Append(text1);
return builder1.ToString();
}
public string HtmlSymbolsToHtmlCodes(string input)
{
StringBuilder builder1 = new StringBuilder();
foreach (char ch1 in input)
{
if (ch1 > '\x0080')
{
builder1.Append("&#");
builder1.Append(ch1.ToString());
builder1.Append(";");
}
else
{
builder1.Append(ch1);
}
}
return builder1.ToString();
}
public string HtmlToXhtml(string input)
{
string text1 = string.Empty;
if (input == null)
{
return text1;
}
try
{
input = "<html>" + input + "</html>";
SgmlReader reader1 = new SgmlReader();
reader1.DocType = "HTML";
reader1.InputStream = new StringReader(input);
reader1.CaseFolding = CaseFolding.ToLower;
reader1.WhitespaceHandling = WhitespaceHandling.None;
StringWriter writer1 = new StringWriter();
XmlTextWriter writer2 = new XmlTextWriter(writer1);
writer2.Formatting = Formatting.Indented;
writer2.IndentChar = '\t';
while (!reader1.EOF)
{
writer2.WriteNode(reader1, true);
}
writer2.Close();
text1 = writer1.ToString();
return text1.Substring(6, text1.Length - 13);
}
catch (Exception exception1)
{
return ("Error convertoring HTML to XHTML: " + exception1.ToString());
}
}
public string RemoveJavaScriptEventsFromTags(string input)
{
input = new Regex(@"</?([-\w]+)( [^>]+)?>").Replace(input, new MatchEvaluator(this.FixTag));
return input;
}
public string RemoveScriptNameFromBookmarks(string input, string url)
{
input = input.Replace("href=\"" + url, "href=\"");
input = input.Replace("href=" + url, "href=");
return input;
}
public string RemoveScriptTags(string input)
{
input = Regex.Replace(input, @"<script(.|\n)+</script>", "", RegexOptions.IgnoreCase);
return input;
}
public string RemoveServerNameFromUrls(string input, string serverPath)
{
input = Regex.Replace(input, "href=" + serverPath, "href=", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "href=\"" + serverPath, "href=\"", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "src=" + serverPath, "src=", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "src=\"" + serverPath, "src=\"", RegexOptions.IgnoreCase);
return input;
}
public string RemoveWhiteSpace(string input)
{
input = input.Replace("\n", " ");
input = input.Replace("\r", " ");
input = input.Replace("\t", " ");
while (input.IndexOf(" ") != -1)
{
input = input.Replace(" ", " ");
}
return input;
}
private ArrayList events;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -