我有一个字段可能包含 HTML 代码作为用户输入。如果我使用简单的荧光笔,它不会在添加 <em>
之前转义输入标签。例如。如果输入是
"This is a <caption>"
然后我搜索“caption”,我得到:
"This is a <<em>caption</em>>"
但我想得到:
"This is a <<em>caption</em>>"
当呈现为 HTML 时,它看起来与突出显示匹配词的输入相同。
最佳答案
一种技术是使用一些其他标记字符串来指示突出显示。参见 hl.simple.pre
and hl.simple.post
.这样您就可以先执行转义,而不会丢失突出显示,然后在最后一步用突出显示标记替换哨兵。
例如,Ruby 的 Sunspot Solr 客户端使用 @@@hl@@@
对于 hl.simple.pre
参数,和 @@@endhl@@@
对于 hl.simple.post
参数。使用这些值......
- Solr 返回:
This is a <@@@hl@@@caption@@@endhl@@@>
- HTML 转义:
This is a <@@@hl@@@caption@@@endhl@@@>
- 替换哨兵:
This is a <<em>caption</em>>
关于java - 突出显示包含 HTML 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948958/