javascript - 改进 HTML-Tagname-strip 的正则表达式

标签 javascript jquery html css regex

下面是一些字符串,应该作为我的 HTML 代码。 我正在尝试从下面的字符串或 HTML 代码中分隔 HTML 标记名。对字符串进行处理后,结果应如下所示:=div=div=strong=em=p=b=p=p=h4=h1=span=。 这是我在变量“sTagName”中的 HTML 代码:

var sTagName = 'abc<div style="left:100px;" > some <div>MyText, <strong> hgz uz <em> Some text for flrdm <p><b>b,  <p> <p><h4><h1><span id="MySpan">any text, ';

这是我的解决方案:

// Remove all attributes, e.g. <div style="left:100px;" > will be converted to <div>
sTagName = sTagName.replace(/<([a-zA-Z0-9]+).*?>.*?/g, '<$1>' );
// I add the "<>" at end of HTML-Code in order to remove the last useless string, I mean "Any text, "
sTagName = sTagName + "<>";
sTagName = sTagName.replace(/.*?<(.*?)>.*?/g,'=$1');

alert(sTagName);

alert(sTagName) 函数提供了预期的结果。 但我想改进我的方法引用性能。例如。我想从两个 RegEx 构建一个 RegEx,或类似的东西。 任何想法?提前致谢。

最佳答案

enter image description here

使用 DOM:

var sTagName = 'abc<div style="left:100px;" > some <div>MyText, <strong> hgz uz <em> Some text for flrdm <p><b>b,  <p> <p><h4><h1><span id="MySpan">any text, ';


tags = $("<div>").html(sTagName).find("*").map(function() {
  return this.nodeName;
}).toArray();

document.write(tags);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 改进 HTML-Tagname-strip 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280456/

相关文章:

javascript - 从 Node js 服务器中的 html 引用 javascript 文件

javascript - 如何从 contentEditable div 获取 html 以进入隐藏文本表单元素内部?

javascript - 如何在 JS 文件中添加 jQuery

javascript - 如何将输入数据视为变量?

html - 彩色 Git 差异到 HTML

javascript - jquery点击按钮后获取最后激活的数据

javascript - 自由墙天沟间距

javascript - 日期范围选择器 html5

javascript - keydown 触发 <a> 的 css 变化,在新标签中打开一个链接,并回滚到 <a> 之前的 css 状态

javascript - JQuery - 查找 Model[n].FieldName 并添加值