使用正则表达式 Javascript 检索文本的父节点
retrieve parentNode of text with regex Javascript
我有一个正则表达式:
var re = RegExp("(?:^''W*|(" + motBefore.replace(/[.*+?^${}()|[']'']/g, "''$&") + ")''W+)" + motErreur.replace(/[.*+?^${}()|[']'']/g, "''$&") + "(?:''W+(" + motAfter.replace(/[.*+?^${}()|[']'']/g, "''$&") + ")|''W*$)", "g");
有了这个正则表达式,我可以在我的页面中找到某个词的位置是定位(像这样,如果它不是我想要的,我没有多次出现)。
我想用跨度来结束motErreur。事实是我不能通过简单的替换和更改内部 HTML 来做到这一点,因为它会弄乱我页面的标签。
我正在使用:
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 result
不是document.getElementById('edth_corps');
而是我通过正则表达式获得结果的节点。
我在IE5上,无法弄清楚如何使用正则表达式获取节点(我尝试过match
但它不起作用。
有人知道如何做到这一点吗?
使用正则表达式不是解决此问题的好方法。您最好创建一个 dom 元素并使用 dom 遍历来删除不需要的元素。您可以执行类似于以下内容的代码:
var wrap = document.createElement('div');
wrap.innerHTML = "your html";
现在您可以使用 dom 选择器使用"虚拟"元素。并将节点附加到 DOM
target.appendChild(wrap.firstElementChild.cloneNode(true);
相关文章:
- 在自定义截面树中获取父节点
- 如何避免在取消选中子节点时取消选中父节点
- 如果未选中子节点,则未选中父节点
- 仅使用某些子节点访问xml中父节点的子节点
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- 使用Javascript设置带有子节点的父节点的类's文本等于.
- 如何确定父节点是否有子节点
- Javascript在没有jQuery的情况下获取X父节点
- 如何从wijmo-flex网格的树视图中的节点转到父节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- 使用XPath选择包含文本的节点,而不考虑CasperJS中的空白
- JQuery 选择父节点并更改其类名
- 如何删除javascript中的节点,而不需要父节点为null
- 如果未全部选中子节点,则取消选中父节点
- 如何在JavaScript中删除子节点触发点击事件时的父节点
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- 获取占位符文本的父节点
- 使用正则表达式 Javascript 检索文本的父节点
- 附加的文本节点似乎有不正确的(可能克隆?)在jQuery父节点
- 使用文本输入值更新父节点