Javascript 使用属性值作为元素的内容

Javascript 使用属性值作为元素的内容,javascript,html,regex,Javascript,Html,Regex,我在找什么 我有这样的代码: 在正则表达式之后,我希望属性“this html”的值是开始标记和结束标记之间的文本,如下所示: 文本在此显示 元素可以包含其他属性,不必是div,它基本上可以是任何其他类型的元素,只要它使用结束标记(不必在同一行上)。输入也可能在标记之间有文本,比如so伪文本,但是可以忽略/应该用“this html”属性的值覆盖 我拥有的 我不能使用jQuery或将字符串转换为Javascript对象,因为它可能包含PHP(如果再次将其转换为字符串,则会破坏PHP)。此脚本在

我在找什么

我有这样的代码:

在正则表达式之后,我希望属性“this html”的值是开始标记和结束标记之间的文本,如下所示:

文本在此显示

元素可以包含其他属性,不必是div,它基本上可以是任何其他类型的元素,只要它使用结束标记(不必在同一行上)。输入也可能在标记之间有文本,比如so
伪文本
,但是可以忽略/应该用“this html”属性的值覆盖

我拥有的

我不能使用jQuery或将字符串转换为Javascript对象,因为它可能包含PHP(如果再次将其转换为字符串,则会破坏PHP)。此脚本在应用程序的“发布为html”过程中使用,因此它可以包含PHP。所以,我试图用正则表达式来解决它

所以基本上,我只有Javascript,我需要处理的HTML只是一个字符串,没有DOM

现在,我有一个正则表达式,它可以为我实现这一点,但是当您在同一行上有多个匹配项,或者当我在“thishtml”之后有另一个属性时,它就不起作用了

这是我正在使用的正则表达式:
/(test我不知道字符串中包含的PHP代码会是什么样子,但是类似这样的东西可以吗?:)


var regex=/]*)\s*此html=\“([^”]*)\”([^>]*)>[^这是做您想做的事情的正确方法:

函数转换(html){
var div=document.createElement('div');
div.innerHTML=html;
div.queryselectoral('*').forEach(el=>{
var h=el.getAttribute('this-html');
如果(h){
el.innerHTML=h;
el.removeAttribute(“this-html”);
}
});
返回div.innerHTML;
}
var html='testOption在预览/发布时可见';

console.log(convert(html));
1.2.您不必为这样的任务编写字符串;html文档被解析为DOM 3.使用
element.innerHTML=element.getAttribute('this-html')
4.请澄清“可能包含PHP”的内容“@ChrisG,我编辑了一点我的帖子。我在应用程序中的“发布到html”过程中使用了它。Javascript在那里可用,但我需要处理的html只是一个字符串,那里没有DOM。请参见,
text.replace(/($3$5))
您可以基于字符串创建虚拟DOM,在元素上运行代码,然后将结果返回HTML。认真地说,不要使用它。使用这个:感谢您的全面回答,非常感谢!在我有机会实现适当的解决方案之前,这将是必须的。