Если это - реальное имеющее GUI приложение конечного пользователя, необходимо проигнорировать lanaguage, в котором Вы записали программу (Java), и используйте собственный установщик для каждой из Ваших выбранных платформ. Люди Mac хотят .dmg, и на окнах .msi или .exe установщик являются способом пойти. В Windows I предпочитают NSIS от NullSoft только потому, что это менее нежелательно, чем InstallShield или InstallAnywhere. На OSX можно рассчитывать на JVM, уже являющуюся там. В Windows необходимо будет проверить и установить его для них при необходимости. Люди Linux не запустят приложения GUI Java и некоторых, которые будут, знать, что сделать с исполняемым файлом .jar.
Вот что я решил. Функция расширения, которую я могу вызвать для соответствующих строк на моей странице / в разделе моей страницы:
public static string HighlightKeywords(this string input, string keywords)
{
if (input == string.Empty || keywords == string.Empty)
{
return input;
}
string[] sKeywords = keywords.Split(' ');
foreach (string sKeyword in sKeywords)
{
try
{
input = Regex.Replace(input, sKeyword, string.Format("<span class=\"hit\">{0}</span>", "$0"), RegexOptions.IgnoreCase);
}
catch
{
//
}
}
return input;
}
Есть дополнительные предложения или комментарии?
Используйте плагин выделения jquery.
Для выделения на стороне сервера
protected override void Render( HtmlTextWriter writer )
{
StringBuilder html = new StringBuilder();
HtmlTextWriter w = new HtmlTextWriter( new StringWriter( html ) );
base.Render( w );
html.Replace( "lorem", "<span class=\"hit\">lorem</span>" );
writer.Write( html.ToString() );
}
Вы можете использовать регулярные выражения для расширенной замены текста.
Вы также можете написать приведенный выше код в HttpModule, чтобы его можно было повторно использовать в других приложениях.
try highlighter from Lucene.net
http://incubator.apache.org/lucene.net/docs/2.0/Highlighter.Net/Lucene.Net.Highlight.html
How to use:
http://davidpodhola.blogspot.com/2008/02/how-to-highlight-phrase-on-results-from.html
EDIT: As long as Lucene.net highlighter is not suitable here new link:
http://mhinze.com/archive/search-term-highlighter-httpmodule/