使用正则表达式Javascript检索文本的parentNode
发布时间:2020-12-14 06:07:16 所属栏目:百科 来源:网络整理
导读:我有一个RegEX: var re = RegExp("(?:^W*|(" + motBefore.replace(/[.*+?^${}()|[]]/g,"$") + ")W+)" + motErreur.replace(/[.*+?^${}()|[]]/g,"$") + "(?:W+(" + motAfter.replace(/[.*+?^${}()|[]]/g,"$") + ")|W*$)","g"); 有了
我有一个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”元素. target.appendChild(wrap.firstElementChild.cloneNode(true); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |