1

我正在编写一个自定义 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 正则表达式的任何帮助。

4

1 回答 1

1

我建议您要么使用本杰明的建议并将 bb 代码存储在某处。

正则表达式的替代品是 innerHTMl 或 textContent 来自

document.querySelectorAll("span.classNameA");

或者

document.getElementsByClassName("classNameA");

或者如果你使用 jQuery,你可以使用

$(".classNameA").text()

$(htmlString).find(".classNameA").each(function() {
  var text = $(this).text(); 
});

无需创建 DOM

于 2013-08-26T06:34:15.300 回答