背景:
语言是 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/