javascript - 规范化空格和其他纯文本格式化例程

标签 javascript formatting text-editor

背景:

语言是 JavaScript。目标是找到一个库或预先存在的代码来进行低级纯文本格式化。

自己可以写,何必重新造轮子。问题是:很难确定是否有一个“轮子”在那里,因为任何对 JavaScript 库的搜索都会拉出以 HTML 为中心的东西的海洋。我不一定对 HTML 感兴趣,只对文本感兴趣。

示例:

我需要一个 JavaScript 函数来改变这个:

之前:

nisi ut aliquip | ex ea commodo consequat duis |aute irure dolor in
esse cillum dolore | eu fugiat nulla pariatur |excepteur sint occa
in culpa qui | officia deserunt mollit anim id |est laborum

...进入这个...

之后:

nisi ut aliquip    | ex ea commodo consequat duis    | aute irure dolor in      
esse cillum dolore | eu fugiat nulla pariatur        | excepteur sint occa
in culpa qui       | officia deserunt mollit anim id | est laborum              

问题:

是否存在一个以非 html-web 开发为中心的 JavaScript 库,它具有规范化带分隔符的纯文本中的空格、对齐和间隔纯文本的功能?

理由:

研究 JavaScript 在程序员的文本编辑器中的使用。

最佳答案

内置的 String 方法确实很低级,但您可以基于它们构建自己的方法。为了简化此任务,您可以使用现有的字符串操作库,例如 underscore.string ,或者至少在那里获得一些灵感。

这是您示例问题的解决方案,已在 Firefox 36 和 Chrome 43 中测试:

http://jsfiddle.net/46a7bexs/7/

基本思想是将整个文本拆分为一个行数组,然后将它们拆分为每个 | 字符(同时去除空格)并将所有内容存储在一个类似于表的变量中(实际上是一个二维数组)。

在下一步中,它遍历所有“单元格”并计算出每列的最大字符串长度。

最后,条目被填充到最大列宽并重新连接在一起。

我确信它可以用更少的代码和更高的效率来完成,但由于没有人发布该问题的解决方案,我想我分享我的直接代码。

关于javascript - 规范化空格和其他纯文本格式化例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435301/

相关文章:

php - PHP 生成的文本框的数字格式

c++ - 如何格式化数字?

html - 如何在 Sublime Text 3 中格式化 HTML

vim - 在 Vim 的命令模式下导航

javascript - 设置数组的属性,在 chrome/node/canary 中返回时髦的数组?

javascript - 在 JavaScript 中将 XML 字符串转换为 HTML 形式

javascript - 从 Rails 中的 javascript 选项获取值

javascript - getXDM 或 JSONP 使用哪一个来规避同源策略

ide - 不需要文件的源代码比较应用程序?

VIM - 快速拉出尴尬文本 block 的方法