我正在向项目添加搜索功能。当输入一个搜索词时,我的程序会遍历一个 html 字符串,并将该词的所有出现替换为由 span 标签包围的搜索词。replaceAll() 方法替换了单词,但它不完全是我想要做的。我不知道如何保持原词的大小写。例如,如果我搜索“hello”:“Hello”变为“hello”,“HELLO”变为“hello”。为了解析 html,我使用的是 jsoup。
Document doc = Jsoup.parse(content);
Elements elemenets = doc.body().getAllElements();
for (int i = 1; i < elemenets.size(); i++) {
String elementText = elemenets.get(i).text();
if (elementText.toLowerCase().contains(search_term.toLowerCase())) {
elemenets.get(i).html(elemenets.get(i).html().replaceAll("(?i)" + search_term, "<span id = 'first' style ='background-color:#fbaf5d;'>" + search_term + "</span>"));
}
}
String result = doc.toString();