Javascript 在JS中解析html页面中的自定义文本标记

Javascript 在JS中解析html页面中的自定义文本标记,javascript,html,parsing,replace,tags,Javascript,Html,Parsing,Replace,Tags,我有一个带有文本标记的HTML页面,如下所示: <div id="container"> [stag id="789"]some content 1[/stag] </div> <span id="somespan"> [stag vn="78988" id="532"]some content 2[/stag] </span> [stag id="891" vn="78988"]some content 3[/stag] [stag id

我有一个带有文本标记的HTML页面,如下所示:

<div id="container">
[stag id="789"]some content 1[/stag]
</div>

<span id="somespan">
[stag vn="78988" id="532"]some content 2[/stag]
</span>

[stag id="891" vn="78988"]some content 3[/stag]

[stag id=“789”]某些内容1[/stag]
[stag vn=“78988”id=“532”]一些内容2[/stag]
[stag id=“891”vn=“78988”]一些内容3[/stag]
我想使用js解析整个页面代码,获取所有
stag
属性和内容,并用生成的div替换它们

注意:它不是一个有效的标记,它用方括号括起来,必须是 未加载js时在页面上显示为纯文本,如果 解析

getElementsByTagName在这种情况下不起作用,因为
[stag]
不是有效的HTML标记,而是网页的纯文本

在能够动态解析该标记的情况下,实现这一点的最佳方法是什么

我想我是在请求帮助创建:
getElementsBySquereBracketsTagName


谢谢你的帮助

它可能不是有效的标记,因为您将在一个范围内使用div,但这里有一种方法

给定HTML

<html>
    <body>
        <div id="container">
        [stag id="789"]some content 1[/stag]
        </div>

        <span id="somespan">
        [stag vn="78988" id="532"]some content 2[/stag]
        </span>

        [stag id="891" vn="78988"]some content 3[/stag]
    </body>
</html>

[stag id=“789”]某些内容1[/stag]
[stag vn=“78988”id=“532”]一些内容2[/stag]
[stag id=“891”vn=“78988”]一些内容3[/stag]
JavaScript

document.body.innerHTML = 
document.body.innerHTML.replace(/\[/gi,'<').replace(/\]/gi,'>').replace(/stag/gi,'div')
document.body.innerHTML=
replace(/\[/gi',).replace(/stag/gi,'div'))

“我想我正在请求帮助创建:GetElementsByQuereBacketStagName”–不完全是这样,因为正如您自己所说,这只是纯文本内容,所以从DOM的角度来看,它只是文本节点,而不是元素节点。您好,这很好,但是如果我用div替换所有stag,那么我以后如何在所有其他div中识别过去是stag的div,而不添加任何像:[stag class=“stag”这样的识别属性id=“324]content[/stag]…在它成为div之后,我可以判断它以前是stag,并使用stag类获取所有元素,但我不想一直包含class=“stag”…任何选择?谢谢..您的代码不正确…文档中的所有stag,所有[,所有],都被替换了…不仅仅是[stag][/stag],我的意思是“[”]'必须保留']''['为纯文本,除非它们用于[stag]标记…hi@itai我不确定您是否可以在这方面帮助您。很难从错误标记中检测出真正的标记,但考虑到您的原始示例,代码可以工作