我正在编写一个自定义BBCode编辑器(我有很好的理由这样做而不是使用现成的工作),这会产生HTML标记,例如
<span class='className'>...</span>
所有这一切都已完成且运作良好。但是,我还需要从HTML到我的BBCode进行反向转换,我不时需要识别使用给定类名的所有跨度。例如
<span class='classNameA' style='font-family"Arial"'>Span content</span> so I can convert it to my BBCode markup
[font=Arial]Span Content[/font]
我很清楚使用正则表达式解析任何旧HTML的危险,这不是我的意图。我只需要反向解析我自己的HTML标记 - 其他所有内容都会传递给BBCode编辑器显示。
总而言之 - 我对正则表达式并不擅长,特别是那些需要前瞻性的人。我非常感谢为这项工作创建JavaScript正则表达式的任何帮助。
答案 0 :(得分:1)
我建议您使用Benjamin的建议并将bb代码存储在某处。
你的正则表达式的替代品是来自
的innerHTMl或textContentdocument.querySelectorAll("span.classNameA");
或
document.getElementsByClassName("classNameA");
或者如果你使用jQuery,你可以使用
$(".classNameA").text()
和
$(htmlString).find(".classNameA").each(function() {
var text = $(this).text();
});
不创建DOM