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

Javascript 规范化空白和其他纯文本格式化例程,javascript,formatting,text-editor,Javascript,Formatting,Text Editor,背景: 语言是JavaScript。目标是找到一个库或预先存在的代码来进行低级纯文本格式化 我可以自己写,但为什么要重新发明轮子呢。问题是:很难确定是否存在“轮子”,因为任何对JavaScript库的搜索都会产生大量以HTML为中心的内容。我对HTML不感兴趣,只对文本感兴趣 示例: 我需要一个JavaScript函数来改变这一点: 之前: 。。。进入这个 之后: 问题: 它是否存在,一个以非html web开发为中心的JavaScript库,它具有规范分隔的纯文本中的空格、证明和分隔纯文本的功

背景:

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

我可以自己写,但为什么要重新发明轮子呢。问题是:很难确定是否存在“轮子”,因为任何对JavaScript库的搜索都会产生大量以HTML为中心的内容。我对HTML不感兴趣,只对文本感兴趣

示例:

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

之前:

。。。进入这个

之后:

问题:

它是否存在,一个以非html web开发为中心的JavaScript库,它具有规范分隔的纯文本中的空格、证明和分隔纯文本的功能

理由:


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

当然,大部分内容都是为在浏览器中使用而准备的,但本质上,任何向字符串原型添加函数的内容都应该对您有所帮助。请查看此处的一些功能:

然后,您可以添加自己的:

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

"someStr".myfunc(); 

我没有听说过任何消息,因为你尝试的可能不太受欢迎


您可能必须基于以下内容构建自己的函数

内置的
String
方法实际上是低级的,但是您可以基于它们构建自己的方法。为了简化此任务,您可以使用现有的字符串操纵库,例如,或者至少从中获得一些灵感

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

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

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

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


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

为什么这个标签是emacs&vim?JavaScript不是Emacs或vim的扩展语言。嘿,好吧,你已经可以在Emacs中使用
C-u M-x align regexp\(| \)RET-1 RET 1 RET y
,做你想做的事情了。我不知道这对OP有什么帮助,甚至不适用。
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              
String.prototype.myFunc = function(){ 
    //...
};

"someStr".myfunc();