Javascript 移除除img标签外的所有标签
我需要一个正则表达式或其他东西来删除Javascript 移除除img标签外的所有标签,javascript,regex,replace,html,Javascript,Regex,Replace,Html,我需要一个正则表达式或其他东西来删除contentEditablediv中的所有标记,但要保留带有特定类或id的img标记,我该怎么做 现在我使用: .replace(/(<\/?.*?>)/gi, ''); 。替换(/()/gi,”); 但它会删除所有标签 我做了这个: var element = document.getElementById("myDiv").children; for(var i=0; i<element .length;i++) {
contentEditable
div
中的所有标记,但要保留带有特定类或id
的img
标记,我该怎么做
现在我使用:
.replace(/(<\/?.*?>)/gi, '');
。替换(/()/gi,”);
但它会删除所有标签
我做了这个:
var element = document.getElementById("myDiv").children;
for(var i=0; i<element .length;i++)
{
if(element[i].tagName != "IMG" || element[i].className != "requiredClassName")
{
element[i].parentNode.removeChild(element[i]);
}
}
var-element=document.getElementById(“myDiv”).children;
对于(var i=0;ivar editableDiv=document.getElementById(“MyEditableDiv”)
var editableDivImgs=editableDiv.getElementsByTagName(“img”)
对于(变量i=0;i
您尝试过类似的方法吗?var editableDiv=document.getElementById(“MyEditableDiv”)
var editableDivImgs=editableDiv.getElementsByTagName(“img”)
对于(变量i=0;i
您尝试过类似的方法吗?(如果您需要纯JS):也许更好的方法是收集所有元素,然后检查它们的类/id并执行操作。好主意是使用DOM,而不是regexp。DOM用于HTML元素操作
(或者使用jQuery):简单的代码就可以做到这一点。只需收集所有div的子类并在.each()循环中检查它们的类
例如:
$('#contentEditable').each( function( index ) {
if( !this.is( 'img' ) && ( this.is('.someclass') || this.is('#someid') ) ) {
this.remove();
}
});
希望对你有帮助
附言:
使用贪婪量化时要小心
*
它将获得任何
之间的所有文本,因此如果您有下面列出的代码,则regexp()
将收集整个代码
<div class="container">
<div id="header">
<div id="portalLink">
<a class="genu" href="http://stackexchange.com">Stack Exchange</a>
</div>
</div>
</div>
(如果您需要纯JS):也许更好的方法是收集所有元素,然后检查它们的类/id并执行操作。好主意是使用DOM,而不是regexp。DOM用于HTML元素操作
(或者使用jQuery):简单的代码就可以做到这一点。只需收集所有div的子类并在.each()循环中检查它们的类
例如:
$('#contentEditable').each( function( index ) {
if( !this.is( 'img' ) && ( this.is('.someclass') || this.is('#someid') ) ) {
this.remove();
}
});
希望对你有帮助
附言:
使用贪婪量化时要小心*
它将获得任何
之间的所有文本,因此如果您有下面列出的代码,则regexp()
将收集整个代码
<div class="container">
<div id="header">
<div id="portalLink">
<a class="genu" href="http://stackexchange.com">Stack Exchange</a>
</div>
</div>
</div>
提取所有IMG并将其连接成新字符串,而不是删除所有其他元素:
var regex = /<img.*?>/gmi;
var imgsOnly = '';
var img;
while( ( img = regex.exec(str) ) !== null ) {
imgsOnly += img;
}
alert( imgsOnly );
var regex=//gmi;
var imgsOnly='';
var-img;
while((img=regex.exec(str))!==null){
imgsOnly+=img;
}
警报(仅限IMG);
提取所有IMG并将其连接成新字符串,而不是删除所有其他元素:
var regex = /<img.*?>/gmi;
var imgsOnly = '';
var img;
while( ( img = regex.exec(str) ) !== null ) {
imgsOnly += img;
}
alert( imgsOnly );
var regex=//gmi;
var imgsOnly='';
var-img;
while((img=regex.exec(str))!==null){
imgsOnly+=img;
}
警报(仅限IMG);
您不应该对HTML使用正则表达式。HTML不是一种正则语言。您不应该对HTML使用正则表达式。HTML不是一种正则语言。谢谢,但它应该删除所有标记(例如…),但保留img标记。(如果可以保留标记内的文本),谢谢,但它应该删除所有标记(例如…),但保留img标记。(如果可以从标记中保留文本)谢谢,我想使用纯Js,使用jquery更容易,但是我需要纯Js。您可以使用childNodes并在其中循环:for(document.getElementById(“contentEditable”).childNodes){//检查元素类型/class/id或其他东西}
谢谢,我想使用纯Js,使用jquery更简单,但我需要纯Js。您可以使用childNodes并在其中循环:for(document.getElementById(“contentEditable”).childNodes中的元素){//检查元素类型/class/id或其他内容}
这不是一个选项,因为我还需要保留现有文本。这不是一个选项,因为我还需要保留现有文本