javascript - 如何在不计算html标签的情况下计算单词在字符串中的位置

标签 javascript typescript

如何计算段落中选定单词或短语的位置,而不计算字符串上的 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/

相关文章:

javascript - 获取 <DIV> 的高度 - 返回 'undefined'

javascript - 删除烛台图表的 amcharts 中的周末间隙

javascript - 通过匹配其属性值来选择数组

javascript - 在 TypeScript/Angular 2 的包装函数中保留 console.log() 行号

typescript - 在 TypeScript 2.4 中使用 Partial 类型进行覆盖

javascript - 为什么上传文件 Controller 没有隐藏?

javascript - 将 JSON 加载到 div 中并同时单击按钮更改背景颜色

reactjs - 调度问题 "Argument of type '(调度 : Dispatch<T>) => Promise<void >' is not assignable to parameter of type ' T'.”

Angular 测试点击事件

javascript - Firebase Javascript/Typescript map 兼容性