Javascript 映射文本和html。职位搜索

Javascript 映射文本和html。职位搜索,javascript,discrete-mathematics,Javascript,Discrete Mathematics,我有文本和这个带有html的文本 从前,有一个非常富有的人,他和他的三个女儿住在一起。两个大女儿嘲笑任何一个穿得不如她们好的人。如果他们两个不在家休息,他们就会出去买尽可能多的漂亮衣服和帽子,带回家 从前 A. 和三个女儿住在一起的非常富有的人。 两个大女儿嘲笑任何一个穿得不如她们好的人。如果他们两个不在家休息, 他们出去买尽可能多的漂亮衣服和帽子回家 需要一个通用的解决方案来从文本到html查找单词/短语的位置。问题是这个词/短语可能有某种风格 di<span style=&quo

我有文本和这个带有html的文本

从前,有一个非常富有的人,他和他的三个女儿住在一起。两个大女儿嘲笑任何一个穿得不如她们好的人。如果他们两个不在家休息,他们就会出去买尽可能多的漂亮衣服和帽子,带回家


从前 A. 和三个女儿住在一起的非常富有的人。 两个大女儿嘲笑任何一个穿得不如她们好的人。如果他们两个不在家休息, 他们出去买尽可能多的漂亮衣服和帽子回家


需要一个通用的解决方案来从文本到html查找单词/短语的位置。问题是这个词/短语可能有某种风格

di<span style="color: orange">d n</span>ot
没有
尝试使用Levenshtein距离收听轮班,但这是一个非常“困难”的解决方案
let html=document.getElementById('input').innerHTML;
让单词='没有';
log(searchPositions(html,word));
函数搜索位置(html、issueText){
让htmlar=Array.from(html).map((项目,索引)=>{
返回{
项目,,
指数
}
});
常量regexp=/]+(>|$)/g;
const tags=html.match(regexp)| |[];
const textTrue=html.replace(/]+(>|$)/g',);
让inTextStartPosition=textTrue.indexOf(issueText);
让inTextEndPosition=inTextStartPosition+issueText.length-1;
让matches=[…html.matchAll(regexp)];
让TagsIndex=matches.map((项)=>{
返回项。索引;
});
让tagsInfo=tags.map((项目,索引)=>{
让长度=项目长度;
设startPosition=TagsIndex[索引];
让endPosition=起始位置+长度;
返回{
起始位置,
结束位置,
长度
}
})
对于(设ii=0;iix.index!==startPosition);
startPosition++;
}
}
让start=htmlar[inTextStartPosition].index;
让end=htmlar[inTextEndPosition]。索引;
返回{
开始
结束
}
}

从前 A. 和三个女儿住在一起的非常富有的人。 两个大女儿嘲笑任何一个不喜欢的人 穿得和他们一样好。如果他们两个不在家休息, 他们出去买尽可能多的漂亮衣服和帽子回家。

let html=document.getElementById('input').innerHTML;
让单词='没有';
log(searchPositions(html,word));
函数搜索位置(html、issueText){
让htmlar=Array.from(html).map((项目,索引)=>{
返回{
项目,,
指数
}
});
常量regexp=/]+(>|$)/g;
const tags=html.match(regexp)| |[];
const textTrue=html.replace(/]+(>|$)/g',);
让inTextStartPosition=textTrue.indexOf(issueText);
让inTextEndPosition=inTextStartPosition+issueText.length-1;
让matches=[…html.matchAll(regexp)];
让TagsIndex=matches.map((项)=>{
返回项。索引;
});
让tagsInfo=tags.map((项目,索引)=>{
让长度=项目长度;
设startPosition=TagsIndex[索引];
让endPosition=起始位置+长度;
返回{
起始位置,
结束位置,
长度
}
})
对于(设ii=0;iix.index!==startPosition);
startPosition++;
}
}
让start=htmlar[inTextStartPosition].index;
让end=htmlar[inTextEndPosition]。索引;
返回{
开始
结束
}
}

从前 A. 和三个女儿住在一起的非常富有的人。 两个大女儿嘲笑任何一个不喜欢的人 穿得和他们一样好。如果他们两个不在家休息, 他们出去买尽可能多的漂亮衣服和帽子回家。

di<span style="color: orange">d n</span>ot