2010-03-12 60 views
2

背景:空白标准化和其他纯文本格式例程

的语言是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 

...这个...

AFTER :

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    

问:

它存在不存在,一个JavaScript库,是具有在分隔的纯文字规范化空间,证明和间距纯文本的功能非HTML的Web开发为中心?

理由:在程序员的文本编辑器使用

调查的JavaScript。

+0

为什么标记为emacs&vim? JavaScript不是Emacs或vim的扩展语言。 – 2010-03-12 20:20:01

+0

它不是*还*。 – dreftymac 2010-03-12 20:31:39

+1

呵呵,你已经可以用C-u M-x align-regexp \(| \)RET -1 RET 1 RET y'来执行你想要的内容了。 – 2010-03-12 21:54:47

回答

1

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

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

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

的基本思想是向整个文本分割成线的阵列,然后将它们分割在每个|字符(同时剥离空白)并将所有内容存储在类似于表的变量中(实际上是一个2维数组)。

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

最后,将条目填充到最大列宽并加入到一起。我敢肯定,它可以用更少的代码和更高效的方式完成,但由于没有人发布解决方案,我想我分享我的直接代码。

-1

当然,这里的大多数东西都适合在浏览器中使用,但基本上任何将函数添加到String原型的东西都应该对您有所帮助。看看一些功能在这里:

http://code.delacap.com/p/js-methods/docs/string.html

然后你就可以添加自己:

String.prototype.myFunc = function(){ 
    //... 
}; 

"someStr".myfunc(); 
+0

我不明白这对OP有帮助甚至是否适用。 – 2010-03-12 20:28:22