⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formatter.cs

📁 Freetextbox是优秀的在线编辑器
💻 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 + -