Javascript replace(),以删除标记和内容

Javascript replace(),以删除标记和内容,javascript,regex,preg-replace,Javascript,Regex,Preg Replace,我有一个标签,里面有一些可验证的内容。我希望能够使用javascriptsrt.replace()删除该标记及其所有内容 我通常会使用类似于jQuery('.tag class').remove()的东西,但在这种情况下jQuery不是一个选项 我相信正则表达式是我所寻找的,但在我摸索了相当一段时间后,我与我开始时并不接近 我需要这样做 var myContent = 'bla bla bla <div class="remove-me">variable content here&

我有一个标签,里面有一些可验证的内容。我希望能够使用javascript
srt.replace()
删除该标记及其所有内容

我通常会使用类似于
jQuery('.tag class').remove()的东西,但在这种情况下jQuery不是一个选项

我相信正则表达式是我所寻找的,但在我摸索了相当一段时间后,我与我开始时并不接近

我需要这样做

var myContent = 'bla bla bla <div class="remove-me">variable content here</div> something something';
// run some cool replace() here and get
// bla bla bla  something something
var myContent='blablablavariable content here something';
//在这里运行一些很酷的replace()并获取
//呜呜呜呜呜呜什么的

任何建议都很好

如果senario是这样的,您可以简单地使用vanilla JavaScript DOM修改:

HTML:

bla bla bla bla变量内容在这里
JavaScript:

var container = document.getElementById("abc"),
    items = container.getElementsByClassName("remove-me"),
    i = 0,
    len = items.length;

for( ; i < len; i++ ) {
    items[i].parentNode.removeChild(items[i]);
}
var container=document.getElementById(“abc”),
items=container.getElementsByClassName(“删除我”),
i=0,
len=项目长度;
对于(;i

或者,如果要去除所有HTML标记:

var container = document.getElementById("abc");

container.innerHTML = container.innerHTML.replace(/(<([^>]+)>)/ig,"");
var container=document.getElementById(“abc”);
container.innerHTML=container.innerHTML.replace(/(]+)>)/ig,“”;

如果senario是这样的,您可以简单地使用vanilla JavaScript DOM修改:

HTML:

bla bla bla bla变量内容在这里
JavaScript:

var container = document.getElementById("abc"),
    items = container.getElementsByClassName("remove-me"),
    i = 0,
    len = items.length;

for( ; i < len; i++ ) {
    items[i].parentNode.removeChild(items[i]);
}
var container=document.getElementById(“abc”),
items=container.getElementsByClassName(“删除我”),
i=0,
len=项目长度;
对于(;i

或者,如果要去除所有HTML标记:

var container = document.getElementById("abc");

container.innerHTML = container.innerHTML.replace(/(<([^>]+)>)/ig,"");
var container=document.getElementById(“abc”);
container.innerHTML=container.innerHTML.replace(/(]+)>)/ig,“”;
var myContent='bla bla bla变量内容here something';
myContent=myContent.replace(/[\s\w]*/g,“”);
警惕(myContent);
var myContent='blablabla-bla-variable-content-here-something';
myContent=myContent.replace(/[\s\w]*/g,“”);
警惕(myContent);

不要使用正则表达式修改HTML

HTML被设计成由解析器进行解析,正则表达式本身并不擅长解析文档标记。最好将HTML作为DIV或类似元素的innerHTML插入,然后使用DOM方法修改内容

然后可以将DIV的内容作为节点插入到文档中,或者获取innerHTML并将其插入

e、 g

函数removeElementsFromMarkup(标记,选择器){
var el=document.createElement('div');
el.innerHTML=标记;
var nodes=el.queryselectoral(选择器);

对于(var i=0,iLen=nodes.length;i不使用正则表达式修改HTML

HTML被设计为由解析器解析,正则表达式本身并不擅长解析文档标记。最好将HTML作为DIV或类似元素的innerHTML插入,然后使用DOM方法修改内容

然后可以将DIV的内容作为节点插入到文档中,或者获取innerHTML并将其插入

e、 g

函数removeElementsFromMarkup(标记,选择器){
var el=document.createElement('div');
el.innerHTML=标记;
var nodes=el.queryselectoral(选择器);

对于(var i=0,iLen=nodes.length;ione要添加的内容…此内容位于内容编辑器中,可以随意使用标记…就像将自己的标识符添加到所讨论的div中一样。因此“”也可能是“”。那么为什么不将其添加到问题中,而不是将其作为注释发布呢?使用正则表达式解析HTML是非常困难的。有一些问题需要解决我想看一看。特别是。在你的问题的左下角有一个。你可以用它来为你的文章添加更多信息。@100pwd:为什么jQuery不是一个选项?特别是因为它们是内容编辑器中的元素,DOM方法应该比html-string-processing更可取。需要添加的一件事是……这个内容存在于内容编辑器中itor,这可能会随意使用标记…例如将其自己的标识符添加到所讨论的div中。因此“”也可能是“”。那么为什么不将其添加到问题中,而不是将其作为注释发布呢?使用正则表达式解析HTML是。您可能需要查看一些。具体来说,在q的左下角有一个uestion。您可以使用它向您的帖子添加更多信息。@100pwd:为什么jQuery不是一个选项?特别是因为它们是内容编辑器中的元素,DOM方法应该优先于html-string-PROCESSION。这只有在您没有叠瓦div元素的情况下才有效。如果您有它们,正则表达式将不足以实现这一点。我简单地做了一个对上面的代码进行编辑,它就像一个符咒一样工作…你有[\s\w”\=-]*在两件事之间,我把它换成了[^>]*。非常感谢!只有当你没有叠瓦div元素时,这才有效。如果你有,正则表达式就不够了。我对上面的代码进行了一次简单的编辑,它就像一个符咒一样工作…你有[\s\w“\=-]*介于两者之间,我将它换成了[^>]*。非常感谢!
function removeElementsFromMarkup(markup, selector) {
  var el = document.createElement('div');
  el.innerHTML = markup;
  var nodes = el.querySelectorAll(selector);

  for (var i=0, iLen=nodes.length; i<iLen; i++) {
    node = nodes[i]
    if (node.parentNode) {
      node.parentNode.removeChild(node);
    }
  }
  return el.innerHTML;
}


alert( removeElementsFromMarkup(
  '<div>foo<div class="remove-me">bar</div></div>', '.remove-me') // <div>foo</div>
);