Javascript或正则表达式解决方案,使标记与XHTML兼容

Javascript或正则表达式解决方案,使标记与XHTML兼容,javascript,jquery,regex,xhtml,replace,Javascript,Jquery,Regex,Xhtml,Replace,我的网站内置了一个内联标记编辑器,可以生成符合XHTML的标记。但是正如您所看到的,它使用了不推荐使用的font标记和size属性 <font style="font-family: Courier New; color: rgb(0, 0, 153);" size="2"> asdfa <span style="color: rgb(0, 51, 0);"> a <font size="5">fds</font>

我的网站内置了一个内联标记编辑器,可以生成符合XHTML的标记。但是正如您所看到的,它使用了不推荐使用的
font
标记和
size
属性

<font style="font-family: Courier New; color: rgb(0, 0, 153);" size="2">
   asdfa
   <span style="color: rgb(0, 51, 0);">
    a
    <font size="5">fds</font>
   </span>
</font>

asdfa
A.
fds
在其他浏览器上,它生成
而不是

是否有Javascript/Regex解决方案可以使用
style
属性和
span
标记获取第一组标记,并将其替换为与XHTML兼容的标记。 提前谢谢


(也可以使用jQuery)

检查是否可以在应用程序中实现其他所见即所得编辑器。

我不推荐使用REGEX来完成这类工作。(请参阅:有史以来最伟大的答案!)我知道,您不是在谈论一个完整的解析器,但我仍然认为您最好使用JavaScript(或您正在使用的任何后端语言)和一个专门用于解析html的库

您可能想看看Sourceforge上的开源项目。
IBM有一个介绍/概述:“。

上述标记在XHTML1.0中完全有效

是否使用像
这样不推荐使用的元素与是否使用XHTML或HTML语法完全是一个正交的问题。XHTML1.0只不过是在XML语法中重新启动HTML4.01:因此,正如HTML4一样,存在过渡和严格的变体

在语义上同样无用。如果您希望标记使用一组在站点上下文中有意义的已定义元素和类,那么您必须让编辑器使用这些元素和类,而不是纯粹基于视觉格式


您可以解析XHTML并在以后的步骤中对其进行修改,以使其看起来更好。但正如前面提到的那样,regex根本不是一个足够的工具。您需要一个XML解析器,然后修复元素和属性,然后将其重新序列化到XHTML。在服务器端这样做是明智的,因为在客户端获取XML解析器有点棘手,如果要清除非白名单元素和属性,无论如何都需要在服务器端这样做。

最好修复编辑器本身,解决问题而不是症状…你在使用哪个编辑器?@Nick。尼斯迪特。我想如果开发人员没有修复它,我会完全不知所措:)“XHTML输出”是“实验性的”,根据网站的说法。这是有效的XHTML 1.0过渡版本:DCK编辑,TinyMCE都没有满足我们的要求谢谢你的详细解释!