c# - 您最喜欢用什么方法来检查 HTML COLOR 是否有效?

标签 c# asp.net html

我使用 C# 和 ASP.NET 4 WebControls。

我的页面上有一个文本框,用户可以输入十六进制格式 (ff0000) 或 HTML 格式(“红色”)的 HTML 颜色。

我最初的想法是编写一个能够验证用户输入的 RegEx 太难了,所以我想出了一个想法来编写一个简单的方法来检查输入的颜色是否可以转换为要使用的有效颜色System.Drawing 的上下文。

在我的代码下面。它返回一个 Bool 数据类型,说明操作是否成功。 它现在工作正常,但我想知道:

  • 我的方法写得好吗?
  • 您知道更好的方法吗?

感谢您的考虑。

using SD = System.Drawing;

protected static bool CheckValidFormatHtmlColor(string inputColor)
        {
            try
            {
                SD.Color myColor = SD.ColorTranslator.FromHtml(inputColor);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

最佳答案

异常处理很繁重,应该作为最后的手段使用,并且只用于实际的异常。尝试这个。它检查有效的 html 十六进制颜色,然后尝试命名颜色。

protected static bool CheckValidFormatHtmlColor(string inputColor)
{
       //regex from http://stackoverflow.com/a/1636354/2343
       if (Regex.Match(inputColor, "^#(?:[0-9a-fA-F]{3}){1,2}$").Success)
           return true;

       var result = System.Drawing.Color.FromName(inputColor);
       return result.IsKnownColor;
}

关于c# - 您最喜欢用什么方法来检查 HTML COLOR 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5563763/

相关文章:

c# - 如何使用 C#.net 为 iPhone 中的推送通知准备后端

javascript - 动态地将 <td> 添加到表中

c# - VS2010 从 VS2008 升级时失去断点命中

c# - 对如何读取xml文件感到困惑

c# - 如何在 Documentdb 中创建一个自动递增的列

javascript - 在元素的实例上附加函数

html - 用于格式化学术出版物的 CSS APA 样式

c# - 当用作委托(delegate)参数时,未实现的部分方法是否会被替换为 null?

asp.net - 为什么 ASP.NET 由于 GAC 的权限而失败?

c# - ASP.NET Core 2 - ReSharper "Create Razor View"将新 View 添加到 Pages 文件夹