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

时间:2010-03-12 19:35:37

标签: javascript formatting text-editor

背景

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

我可以自己写,但为什么重新发明轮子。问题是:很难确定是否存在“轮子”,因为任何对JavaScript库的搜索都会引发一系列以HTML为中心的东西。我不一定对HTML感兴趣,只是文字。

示例:

我需要一个改变它的JavaScript函数:

BEFORE

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              

问题:

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

理由:

调查JavaScript以便在程序员的文本编辑器中使用。

3 个答案:

答案 0 :(得分:1)

我没有听说过,因为你所尝试的可能并不太受欢迎。

您可能必须根据JavaScript's built-in string functions构建自己的功能。

答案 1 :(得分:1)

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

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

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

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

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

最后,条目被填充到最大列宽并连接回gether。

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

答案 2 :(得分:-1)

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

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

然后你可以添加自己的:

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

"someStr".myfunc();