【问题标题】:Is there a way to do String.Format() in javascript?有没有办法在 javascript 中执行 String.Format() ?
【发布时间】:2009-12-10 18:07:04
【问题描述】:

所以我有一个不允许任何服务器端编码的客户端,除了在极少数情况下经典的 asp,所以一切都是 HTML 和 javascript。

所以基本上我需要从表单构建一个 URL,然后重定向。 Javascript 不一定是我的事,但这需要我在 asp.net 中使用 String.Format 5 分钟。

javascript中有String.Format方法吗?

【问题讨论】:

  • 您需要做一些事情来告诉您的客户他的全 JavaScript 模型只是错误
  • 这更像是在说“让我们乘坐泄漏船”。

标签: javascript html string.format


【解决方案1】:

哎呀,太糟糕了。

盗自another post:

String.format = function() {
  var s = arguments[0];
  for (var i = 0; i < arguments.length - 1; i++) {       
    var reg = new RegExp("\\{" + i + "\\}", "gm");             
    s = s.replace(reg, arguments[i + 1]);
  }

  return s;
}

【讨论】:

  • 我认为您的意思是 String.prototype.format 以便您可以将其用作“{1} 测试”.format("quick");
  • 显然他不是这个意思,因为字符串很明显是第一个参数,但在大多数情况下,原型设计会是更好的选择。
  • 没错,您可以使用原型设计。这里的原因很简单,c#(我选择的语言)以这种方式工作。不过个人喜好,原型设计也可以。
【解决方案2】:

不,javascript中没有这种东西,但是有些人已经为js写了一个printf

例如JavaScript equivalent to printf/string.format

【讨论】:

    【解决方案3】:

    我一直在寻找类似的东西,并选择了 Prototype 的“模板”对象。

    来自原型examples

    
    
    

    // the template (our formatting expression) var myTemplate = new Template( 'The TV show #{title} was created by #{author}.');

    // our data to be formatted by the template var show = { title: 'The Simpsons', author: 'Matt Groening', network: 'FOX' };

    // let's format our data myTemplate.evaluate(show); // -> "The TV show The Simpsons was created by Matt Groening."

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2016-02-17
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多