使用正则表达式Javascript检索文本的parentNode

前端之家收集整理的这篇文章主要介绍了使用正则表达式Javascript检索文本的parentNode前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个RegEX:

var re = RegExp("(?:^\\W*|(" + motBefore.replace(/[.*+?^${}()|[\]\\]/g,"\\$&") + ")\\W+)" + motErreur.replace(/[.*+?^${}()|[\]\\]/g,"\\$&") + "(?:\\W+(" + motAfter.replace(/[.*+?^${}()|[\]\\]/g,"\\$&") + ")|\\W*$)","g");

有了这个RegEX,我可以在我的页面中找到关于定位的某个词的位置(就像这个我没有多次出现,如果它不是我想要的那个).

我想用跨度来调整motErreur.事实是我不能通过简单的替换和改变innerHTML来做到这一点,因为它弄乱了我的页面标签.

我在用 :

var result = document.getElementById('edth_corps');
var textRangeGlobal = document.body.createTextRange();
textRangeGlobal.moveToElementText(result);
if(textRangeGlobal.findText(motErreur)){
    var html= "<span id='"+nbId+"' class='erreurOrthographe' oncontextmenu='rightClickMustWork(event,this);return false'>" + motErreur + "</span>";
    textRangeGlobal.pasteHTML(html);
}

我希望var结果不是document.getElementById(‘edth_corps’);但是我用RegEX获得结果的节点.

我在IE5上,无法弄清楚如何使用RegEx获取Node(我试过匹配,但它没有用.

有人有想法怎么做?

解决方法

使用正则表达式不是解决此问题的好方法.你最好创建一个dom元素并使用dom遍历来删除不需要的元素.您可以执行以下类似的代码

var wrap = document.createElement('div');
wrap.innerHTML = "your html";

现在,您可以使用dom选择器处理“virtual”元素.
并将节点附加到dom

target.appendChild(wrap.firstElementChild.cloneNode(true);

猜你在找的正则表达式相关文章