Есть ли способ встроить функцию C # для создания правильного имени класса CSS? - PullRequest
0 голосов
/ 26 января 2012

Есть ли встроенная функция ASP.Net или MVC3, которая генерирует действительный класс CSS с заданной строкой. Похоже, у Tagbuilder есть один класс AddCssClass. Однако просто интересно, есть ли что-нибудь еще, которое берет строку и преобразует ее в действительное имя класса CSS путем преобразования недопустимых символов в допустимые?

В качестве примера скажем, у меня есть строка "Test. Bad Name Name"

Мне было интересно, была ли вспомогательная функция для преобразования этого в "Test__Bad Class_Name" или что-то подобное.

MVC, похоже, не генерирует неверные идентификаторы и т. Д., Поэтому я просто подумал, есть ли у него что-то такое, что я был последовательным. Я просто подумал, что это будет общим требованием.

Ответы [ 3 ]

3 голосов
/ 26 января 2012
string className = Regex.Replace(myInput, @"[^a-zA-Z_\-]+", "_");

Я знаю, что этот шаблон чрезмерно усердствует и заменяет символы, которые не должны, например числа, но он даст вам одностороннюю функцию для генерации допустимых имен классов CSS.

1 голос
/ 11 апреля 2013

Вот решение @atornblad в качестве метода расширения

    public static string ToValidClassName(this string srcString)
    {
        return Regex.Replace(srcString, @"[^a-zA-Z_\-]+", "_");
    }

Встраивает в себя «ощущение»: -)

0 голосов
/ 04 марта 2013

Существует также XmlConvert.EncodeLocalName , что не очень красиво, но обратимо.Имя XML и класс CSS имеют аналогичные ограничения именования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...