剥离字符串以获取安全的CSS类名称?

时间:2012-06-07 19:17:06

标签: c# .net regex asp.net-mvc c#-4.0

我有一个来自数据库的任意字符串。我想将此字符串作为HTML类名放在网页上。我不确定期待什么字符。如何删除空格和特殊字符以使其成为CSS类名称“安全”?

经过一些研究,似乎空间和这些角色需要删除:

!"#$%&'()*+,./:;<=>?@[\]^`{|}~

删除它们的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

您可能希望查看this主题以更好地了解有效的CSS名称。

我推荐了如下的实用程序功能,你应该根据需要测试/更改正则表达式。

Regex re = new Regex(@"[!""#$%&'()\*\+,\./:;<=>\?@\[\\\]^`{\|}~ ]");
string outputString = re.Replace(inputString, string.Empty); 

答案 1 :(得分:0)

您正在尝试使用System.IO.Path.GetInvalidFileNameChars过滤掉特殊字符:

var tagName = "fo@3do@11~1298#bar";
    var invalidChars = System.IO.Path.GetInvalidFileNameChars();
    var cleanTagName = new string(tagName.Where(m => !invalidChars.Contains(m)).ToArray<char>());