用于识别具有给定类名的跨度的正则表达式

时间:2013-08-26 06:21:42

标签: javascript html regex

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

1 个答案:

答案 0 :(得分:1)

我建议您使用Benjamin的建议并将bb代码存储在某处。

你的正则表达式的替代品是来自

的innerHTMl或textContent
document.querySelectorAll("span.classNameA");

document.getElementsByClassName("classNameA");

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

$(".classNameA").text()

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

不创建DOM