Javascript 如何使用regex和jQuery/JS从字符串中删除字符串?

Javascript 如何使用regex和jQuery/JS从字符串中删除字符串?,javascript,jquery,Javascript,Jquery,我想知道,如何删除: <span>blablabla</span> 出于某种原因,我想从var文本中删除span及其内容 我怎么做 text=text.replace(/.*/g'); text = text.replace(/<span>.*<\/span>/g, ''); 在使用之前删除不需要的空白 text = text.replace(/\s*<span>.*<\/span>/g, ''); text=text

我想知道,如何删除:

<span>blablabla</span>
出于某种原因,我想从var文本中删除span及其内容

我怎么做

text=text.replace(/.*/g');
text = text.replace(/<span>.*<\/span>/g, '');

在使用
之前删除不需要的空白

text = text.replace(/\s*<span>.*<\/span>/g, '');
text=text.replace(/\s**/g');
给你留下

<p>Text wanted</p>
需要
文本

无法从变量
文本中删除
,因为它不存在-文本只是文本,没有任何元素的痕迹

在仍然存在一些结构的情况下,您必须更早地删除跨度:

$('p').find('span').remove();
或者使用HTML(
.HTML()
)而不是纯文本序列化元素

不要使用正则表达式编辑HTML-HTML不是一种正则语言,正则表达式在非平凡的情况下会失败

var html = $('p').html();

var tmp = $('<p>').html(html);
tmp.find('span').remove();

var text = tmp.text();
var html=$('p').html();
var tmp=$(“”).html(html);
tmp.find('span').remove();
var text=tmp.text();

注意,如果您不是HTML的作者,HTML可能包含
。只有在完全控制HTML的情况下才能在HTML上使用正则表达式。好吧,OP询问了删除Blabla的问题,没有其他问题:)如果有可能需要删除更复杂的东西,正则表达式将更复杂。是的,我只是警告OP。他不太清楚
标记中的预期内容。他没有指定他是否控制HTML,我不想从DOM中删除span节点。我需要不带span及其内容的p(在变量中)文本。@sunpietro在这种情况下,您可以遍历
p.childNodes
并连接它们的
.textContent
,跳过带有
.tagName=='span'
的节点(这是原始DOM,我不确定jQueryish中是什么)。
$('p').find('span').remove();
var html = $('p').html();

var tmp = $('<p>').html(html);
tmp.find('span').remove();

var text = tmp.text();