如何计算段落中选定单词或短语的位置,而不计算字符串上的 HTML 标签,例如。
我有这个字符串:
Lorem ipus lores dolores <strong> mauris eget </strong> lectus tincidunt malesuada.
我想知道 lectsus
的位置,无需计数或跳过 html 标签的字符。
我无法使用 indexOf()
因为从标签中计算字符。
最佳答案
一个快速的解决方案是:
let index = string.split(' ').filter(x => !x.includes('<')).indexOf(yourWord)
那么我们在这里做什么?
-
string.split(' ')
获取您的字符串并创建一个数组,其中所有单词均以空格分隔 -
filter(x => !x.includes('<'))
获取上一步中的数组并删除包含字符<
的所有单词。 -
indexOf(yourWord)
只需返回您要查找的单词的索引
这假设不是 html 标签的单词永远不会包含字符 <
.
当然,您可以使用更复杂的 HTML 清理程序来识别字符串是否是 HTML 标记。
关于javascript - 如何在不计算html标签的情况下计算单词在字符串中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49941532/