Javascript 从字符串中删除类为NotTranslate的HTML元素span

Javascript 从字符串中删除类为NotTranslate的HTML元素span,javascript,Javascript,需要删除类为“NotTranslate”的特定HTML标记跨度,以下解决方案是从我的文本中删除所有HTML标记 我的预期结果是:Deleted String:Adding String:Idea No.dvalue Details var str='Idea No.d{{value}}详细信息'; var addStr='添加字符串:'+str.replace('{{','').replace('}}}',''; console.log('Deleted String:'+addStr.rep

需要删除类为“NotTranslate”的特定HTML标记跨度,以下解决方案是从我的文本中删除所有HTML标记

我的预期结果是:
Deleted String:Adding String:Idea No.d

value Details

var str='Idea No.d

{{value}}详细信息'; var addStr='添加字符串:'+str.replace('{{','').replace('}}}','';
console.log('Deleted String:'+addStr.replace(new RegExp(/方法replace all标记),因为您在RegExp中使用选项'gi',其中'gi'执行全局不区分大小写的替换。如果要替换特定类,则必须在RegExp中定义解析DOM的内容非常复杂,不能手工编写

如果可以在浏览器中运行,则解决方案如下:

var str='Idea No.d

{{value}}详细信息'; var addStr='添加字符串:'+str.replace('{{','').replace('}}}',''; const dom=document.createElement('div'); dom.innerHTML=addStr; const notranslate=dom.getElementsByClassName('notranslate'); 对于(让elem of notranslate){ elem.remove(); }
console.log(dom.innerHTML);
删除特定的HTML标记,但保留innerHTML, 尝试:

var str='Idea No.d

{{value}}详细信息'; var addStr='添加字符串:'+str.replace('{{','').replace('}}}',''; const dom=document.createElement('div'); dom.innerHTML=addStr; const span=dom.getElementsByClassName('notranslate'); while(跨度长度){ var parent=span[0]。parentNode; while(span[0]。第一个孩子){ parent.insertBefore(span[0].firstChild,span[0]); } parent.removeChild(span[0]); }
log(dom.innerHTML);//添加字符串:Idea No.d

值详细信息
如果您真的想使用正则表达式,您可以使用下面的命令剥离任何HTMLspan具有
nottranslate
类的元素。它考虑到您可以在该元素和多个类上具有其他属性的事实只要有一个类为
未翻译的
,它就会去掉HTML标记并保留内容

/<span.*?class=(?:"|"(?:[^"]*)\s)notranslate(?:"|\s(?:[^"]*)").*?>(.*?)<\/span>/
/(*)/
工作代码段:

让str1='我想删除它';
console.log('original:',str1);
console.log('modified:',str1.replace(/(.*?/,“$1”);
设str2='我希望删除此项';
console.log('original:',str2);

console.log('modified:',str2.replace(/(.*?/,“$1”));
您可以尝试创建html元素并删除具有这些类名的元素。为了优化,您可以检查字符串是否包含此类名,但我不知道它是否满足您的要求。其中一个可能的重复是关于使用正则表达式解析html的智慧。避免。使用适当的html解析器来执行此操作。这是唯一的脚本,这里没有HTML dom。您在哪里运行此脚本?