有没有好用的 JavaScript BBCode 解析器?

11

目前我正在服务器端解析BBCode,但我希望像这个网站一样显示预览。

如果我使用Ajax在服务器端处理BBCode,会有点延迟,所以我想在客户端处理,只需显示预览即可。

你们知道有没有用JavaScript编写的BBCode解析器吗?

3个回答

8
有点晚了,这个问题肯定已经有答案了。但是如果你仍然愿意听取建议,并且还没有花时间将所示的解析器从C#转换为JavaScript,我编写了一个解析器(最初是用PHP编写的),并将其自己转换[2]成JavaScript。它可以在bitbucket上以3条款BSD许可证获得。该解析器似乎相当快,但我还没有对其速度进行任何分析。

它可能在某些方面不如其他可能的项目灵活,但它确实允许定义自己的代码(“bb-code”或其他,具有相当多的属性),并且也全部包含在一个文件中。这不是一个简单的查找和替换解析器,并且不基于正则表达式。

如果您感兴趣,它可能会使您免于转换其他库。从技术上讲,我是一个相对“未知”的人,但这就是JS/OSS的伟大之处:您可以查看源代码以了解我所做的事情。

[2] 因此,仍然存在一些“兼容性函数”,但我重写了那些有本机等效物的内容。


@ArtMcBain:在Bitbucket上找不到项目-1。 - Pastor Bones
2
+1。哦,https://bitbucket.org/AMcBain/bb-code-parser 是实际存储库的链接。 - zrvan
我在这里不是很活跃,而且我不知道这么长时间之后更新是否“错误”,然后我就忘了。我想至少该存储库已经从我的网站链接过来了。感谢@zrvan发布链接,我已经在我的评论中更新了它。 - Art McBain
@ArtMcBain 看起来不错(你好!) - cxw

5

我个人没有使用过任何Javascript BBcode解析器,但是谷歌搜索结果中排名前两位(bbcodejs这篇博客文章)似乎都不太好。前者似乎仅支持简单的查找和替换,后者似乎内置了一些预设BBcode,如果选择该解决方案,可能需要进行一些修改。

你最好的选择可能是自己编写解析器(有可能基于这两个链接之一),或者只使用AJAX并继续前进。这可能是确保预览准确性的最佳方法,在每次按键时实时预览并不一定是必要的;在发送请求之前有一个延迟是可以接受的。


5
在发布之前,我看过这两个链接,但我希望找到更受欢迎的东西,就像我现在正在使用的库(http://bbcode.codeplex.com/)一样。所以,我可能会将它移植到JS上。 似乎没有太多选择。 - Drevak
4
您真的在推荐一些带有 eval("/"+obj[k].tmatch[tm]+"/gi.test(tag[tm])" 的东西吗? - katspaugh
2
@Matchu:我认为在Stack Overflow上这些傲慢的“让我帮你谷歌一下”的评论是不必要的(它们还会降低获得赞的机会)。Stack Overflow就像一个巨大的知识库,使用Google很容易找到,所以看到有用的答案而没有令人讨厌的评论真的很好。 :) - Sk8erPeter
@Sk8erPeter:说得好。2009年不是我的最佳年份;P - Matchu
@Matchu:没问题,你仍然可以编辑你的回答:D - Sk8erPeter
@Sk8erPeter:同样公正的观点。去掉了讽刺意味。 - Matchu

1

我遇到了相同的问题,所以我自己写了一个。它支持BBCode->AST数组->任何种类的标记,现在支持HTML和React。并且有插件和预设支持。

https://github.com/JiLiZART/bbob


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接