使用Javascript格式化纯文本的最快方法

时间:2011-03-10 00:07:54

标签: javascript file-io formatting performance

我有一个大的纯文本文档,大约700kb,这对于纯文本非常大,我需要在云上将其格式化,将其转换为HTML,但我需要替换的唯一内容,格式化为HTML以便它可以是浏览器显示的是粗体斜体。对于纯文本,它们是这样的:

Not on bold... **bold text here** not bold here

像这样的斜体:

Not italic... *italic text* no italic

就像StackOverflow的格式一样,但问题是我需要更快,因为文本太大了......我的一个想法是添加页面幻灯片,所以我的脚本只是需要格式化文本的某些部分,而不是全部,然后在用户更改页面后再次调用脚本,但问题是如何为此创建代码?

2 个答案:

答案 0 :(得分:1)

您可以尝试将其划分为多个div,并尝试找到一种方法,将格式应用于每个div时(即用户滚动并进入内容区域)。

我不知道如何做到这一点,但你可能会在Jquery中找到类似的东西并获取一些代码。

例如: http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/

答案 1 :(得分:1)

function boldAndItalicize(text) {
  return text.replace(/&/g, '&amp;').replace(/</g, '&lt;')
      .replace(/(\*+)([^*]{1,1024})(\*+)/g,
               function (whole, open, content, close) {
                 if (open.length === close.length) {
                   switch (open.length) {
                     case 1: return '<i>' + content + '</i>';
                     case 2: return '<b>' + content + '</b>';
                   }
                 }
                 return whole;
               });
}

太慢了?

如果你想要分解它,你仍然需要扫描到断点,以确保你没有在斜体或粗体部分内分裂。