背景
语言是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以便在程序员的文本编辑器中使用。
答案 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();