Попробуйте что-то вроде этого:
string незаконно = "\" M \ "\\ a / ry / h ** ad: & gt; & gt; a \\ /: *? \ "| Ли * тт | ле || ягненок.?"; string invalid = new string (Path.GetInvalidFileNameChars ()) + новая строка (Path.GetInvalidPathChars ()); foreach (char c in invalid) {незаконно = незаконно. Замените (c.ToString (), ""); }
Но я должен согласиться с комментариями, я бы, вероятно, попытался разобраться с источником незаконных путей, вместо того, чтобы пытаться калечить незаконный путь в законный, но, вероятно, непреднамеренный 1.
Изменить: Или потенциально «лучшее» решение, используя Regex's.
string незаконно = "\" M \ "\\ a / ry / h ** ad: & gt; a \\ /: *? \ "| Ли * тт | ле || ягненок.?"; string regexSearch = новая строка (Path.GetInvalidFileNameChars ()) + новая строка (Path.GetInvalidPathChars ()); Regex r = new Regex (string.Format ("[{0}]", Regex.Escape (regexSearch))); незаконно = r.Replace (незаконно, "");
Тем не менее, возникает вопрос, почему вы делаете это в первую очередь.
Chrome обычно обрабатывает это через пользовательские настройки. (через chrome://settings/searchEngines
)
Однако, если вы хотите реализовать это специально для своих пользователей, вам нужно добавить OSD (Open Search Description) на ваш сайт.
Использование функции OmniBox [TAB] Google Chrome для / на личном веб-сайте?
Затем вы добавляете этот XML-файл в корень вашего сайта и ссылаетесь на него в своем <head>
:
<link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" />
Теперь посетители вашей страницы автоматически добавят информацию о вашем сайте в внутренние настройки Chrome в chrome://settings/searchEngines
.
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Your website name (shorter = better)</ShortName>
<Description>
Description about your website search here
</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">your site favicon</Image>
<Url type="text/html" method="get" template="http://www.yoursite.com/search/?query={searchTerms}"/>
</OpenSearchDescription>
Важной частью является элемент <url>
. {searchTerms}
будет заменен на то, что пользователь ищет в omnibar.
Вот ссылка на OpenSearch для получения дополнительной информации.
Ответ, данный @ element119, отлично работает, но вот слегка измененный код для поддержки предложений поиска, а также поддержки Mozilla.
Следуйте ниже, чтобы реализовать поддержку omni box для вашего сайта.
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<script/>
<ShortName>Site Name</ShortName>
<Description>Site Description (eg: Search sitename)</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">Favicon url</Image>
<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&q={searchTerms}" />
<Url type="text/html" method="GET" template="http://yoursite.com/?s={searchTerms}" />
<SearchForm>http://yoursite.com/</SearchForm>
</OpenSearchDescription>
<head>
вашего сайта <link rel="search" href="http://www.yoursite.com/search.xml" type="application/opensearchdescription+xml" title="You site name"/>
Обязательно замените URL-адреса домена своим доменом .
<SearchForm>
или <moz:SearchForm>
? Кажется, я не нашел SearchForm
в документах OpenSearch и всех других ресурсах, которые я нашел в Интернете, используя <moz:SearchForm>
.
– Niels R.
22 September 2016 в 07:11