Javascript 使用正则表达式计算Html页面标记数

Javascript 使用正则表达式计算Html页面标记数,javascript,regex,node.js,Javascript,Regex,Node.js,我想使用javascript解析整个html页面,并使用regEx计算其中存在的不同标记的总数,然后将其打印出来。有谁能帮我做这件事吗?代码将是最受欢迎的 例如,如果这是html页面: <html> <head> </head> <body> <a>This is a tagt 2</a> <p>This is paragraph1</p> <a>This is Assigntment

我想使用javascript解析整个html页面,并使用regEx计算其中存在的不同标记的总数,然后将其打印出来。有谁能帮我做这件事吗?代码将是最受欢迎的

例如,如果这是html页面:

<html> <head> </head> <body> <a>This is a tagt 2</a> <p>This is 
paragraph1</p> <a>This is Assigntment 2</a> <p>This is paragraph1
</p> <div> <img> </img> </div> <body> </html> 
这是一个标记2这是
第1段这是作业2这是第1段

那么预期的产出是:

  • a
    tag的数量=2
  • p
    tag的数量=2
说明 计算字符串中的所有标记名,同时避免出现困难的边缘情况

例子 正则表达式

<([a-z]+)(?=[\s>])(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*\s?\/?>
])(?:[^>=]|='[^']*'.[^']*'.[^']*'.=[^'\s]*)*\s?\/>

现场演示

  • 正则表达式:
  • Javascript:
示例代码

var string=“这是一个标记2这是第1段

这是赋值2这是第1段

”; console.log(字符串); 变量re=/])(?:[^>=]|='[^']*'.[^']*'.[^']*'.=[^''\s]*)*\s?\/?>/gi; var-m; var HashTable={}; 做{ //指挥比赛 m=重新执行(字符串); //验证匹配是否成功 如果(m){ //验证哈希表是否有找到的标记名的条目 if(!(哈希表中的m[1]){ //找不到条目,因此我们将为此标记名添加条目,并将其计为零 哈希表[m[1]]=0 }//如果结束,则结束 //递增标记名计数器 哈希表[m[1]]++ }//如果结束,则结束 }while(m); console.log(“”) //输出找到的所有标记名的编号 for(哈希表中的var键){ log(key+“=”+哈希表[key]); }
样本输出

<html> <head> </head> <body> <a>This is a tagt 2</a> <p>This is paragraph1</p> <a>This is Assigntment 2</a> <p>This is paragraph1</p> <div> <img> </img> </div> <body> </html>

html=1
head=1
body=2
a=2
p=2
div=1
img=1
这是标记2这是段落1

这是赋值2这是段落1

html=1 水头=1 车身=2 a=2 p=2 div=1 img=1
您只想获得每种类型标记的计数?也许这有助于入门:是:)例如,如果这是html页面,这是标记2这是段落1这是赋值2这是段落1

那么预期输出是:标记数:2 p标记数:2 etcYeah,您可以像这样使用getElementsByTagName函数:yaa,但在一般上下文中,我不知道html页面中存在哪些标记,而且还需要regEx,所以。。。。。。