データベースから取得した任意の文字列があります。この文字列を HTML クラス名として Web ページに配置したいと考えています。どのキャラクターが期待できるかわかりません。スペースと特殊文字を削除して、CSS クラス名として「安全」にするにはどうすればよいですか?
いくつかの調査の後、スペースがあり、これらの文字を削除する必要があるようです:
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
それらを削除する最良の方法は何ですか?
データベースから取得した任意の文字列があります。この文字列を HTML クラス名として Web ページに配置したいと考えています。どのキャラクターが期待できるかわかりません。スペースと特殊文字を削除して、CSS クラス名として「安全」にするにはどうすればよいですか?
いくつかの調査の後、スペースがあり、これらの文字を削除する必要があるようです:
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
それらを削除する最良の方法は何ですか?
このスレッドを参照して、有効な CSS 名をよりよく理解することをお勧めします。
以下のユーティリティ関数をお勧めします。必要に応じて正規表現をテスト/変更する必要があります。
Regex re = new Regex(@"[!""#$%&'()\*\+,\./:;<=>\?@\[\\\]^`{\|}~ ]");
string outputString = re.Replace(inputString, string.Empty);
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>());