【问题标题】:Javascript: quick script to line up pipe-delimited text (or any-character-delimited text)Javascript:快速脚本来排列管道分隔的文本(或任何字符分隔的文本)
【发布时间】:2009-10-30 04:28:17
【问题描述】:

背景:我以前写过这个,但我不喜欢这种方法。原因是 Javascript 没有“sprintf”,如果语言支持,我会大量使用它。

问题:您将如何使用 javascript 从 BEFORE 转到 AFTER?如果有人有一个代码行数很少的解决方案,或者来自 javascript 字符串库的东西,那将是有益的。 TIA。

之前:

red| lightblue| green 
cherry| ice| mint 
round| cubic| flowery

之后:

red    | lightblue | green 
cherry | ice       | mint 
round  | cubic     | flowery

免责声明:这不是家庭作业或任何类似的事情,只是寻找新的想法。此外,这不是基于浏览器的 javascript。这不是一个网络开发问题,而是一个 javascript 编程问题。

【问题讨论】:

  • 你为什么要 javascript 来做这个? HTML 用于显示标记。
  • 嗯,例如,它可以在 Windows 脚本宿主上下文中使用。

标签: javascript string csv


【解决方案1】:

如果您喜欢sprintf,为什么不寻找JavaScript implementation 呢?

【讨论】:

  • 小心,第一个命中的实现不支持填充值。
【解决方案2】:
function pad(str, len) {
    for (var count = len - str.length; count > 0; count--) {
        str = str + " ";
    }
    return str;
}

console.log(pad("red", 7) + "| " + pad("lightblue", 9) + "| " + pad("green", 7));
//etc.

是的,一个接一个地连接字符是低效的,但通常你只会有少量的迭代。

【讨论】:

  • 是的,这正是我试图避免的。只是想知道是否有我没有想到的替代方法......正则表达式技巧或其他东西......
  • 好吧,我想还有其他有趣的方法。就像如果您知道最大长度一样,您可以执行return str + " ".substr(str.length) 之类的操作(始终将其填充为 9),但除此之外……我什么都没有。 :)
  • 啊,愚蠢的 HTML。假设上面的" " 有九个空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 2018-04-27
相关资源
最近更新 更多