下面是一些字符串,应该作为我的 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,或类似的东西。
任何想法?提前致谢。
最佳答案
使用 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/