![]() |
1
2
从搜索文本中删除HTML标记,然后首先执行纯文本搜索。然后,一部分一部分(即文本节点一个文本节点),取搜索文本部分的元素路径,并与找到的文本中的对应部分进行比较。如果所有部分的路径都匹配,就完成了。
编辑
:在path中,我指的是类似于xpath或tinymce编辑器的path概念。示例:搜索文本的纯文本部分是“colorText®”。搜索文本中此文本节点的路径为
|
![]() |
2
1
你要的是一些相关的,但不连续的能力:
你应该采取步骤-否则它将变得势不可挡,一个单一的搜索算法将无法做到这三个不需要紧张的努力,并导致难以维护代码。 首先,看看类似的问题。进行忽略空格和大小写的搜索。如果你还需要处理“碗”与“碗”以及“智能”与“智能”,你可能会想要进入Lucene或其他搜索引擎技术,尽管我预计这超出了你目前的需求。 一旦你完成了这项工作,它就会成为你的搜索堆栈中的一层。
第二,查看格式搜索。这通常是通过使用标记或标记来完成的,而这些标记或标记是以HTML的形式存在的。但是,你必须能够不按顺序处理事情-所以
其中一种方法是预先解析字符串并将格式样式应用于每个字符。所以你会有一个粗体和斜体的t,粗体和斜体的e,等等。为了使这个更容易和更快,使用哈希来表示样式组合-读取第一个字符,找出它是什么样式(跟踪这个打开和关闭样式的过程,你会找到标签),如果它已经存在于哈希中,把这个哈希数分配给Letter.如果没有,则获取新的哈希数并分配它。 现在,您可以将字母及其样式散列与搜索结果进行比较,并获得格式和内容匹配。把它堆在你相似的火柴上面,你就得到了你需要的。 -亚当 |
![]() |
3
1
如果它是有效的XML,那么对于这种练习来说,XSLT是微不足道的。 使用标识模板,然后添加xpath以查找所需的特定节点:
使用XML时,这将是一个可维护、可扩展的解决方案。 |
![]() |
4
-1
不一定能理解你所说的每一句话,但是使用正则表达式似乎是克服你所说问题的一个好方法。 |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
NovoMannen · 导航中的下拉菜单在内容后面重叠 1 年前 |
|
eXor420 · 如何在脚本标记中使用导出的函数? 1 年前 |
![]() |
IonicMan · 剑道网格在宽度过大时不显示某些列 1 年前 |
![]() |
Kernier · 如何将数学公式支持添加到StacksEditor? 1 年前 |
|
Md. Ibrahim · CSS网格项溢出小屏幕滚动 1 年前 |
|
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |