用于 javascript 或 node.js 的 string.format、sprintf() 等的咖啡脚本版本 [英] coffeescript version of string.format, sprintf() etc. for javascript or node.js

查看:23
本文介绍了用于 javascript 或 node.js 的 string.format、sprintf() 等的咖啡脚本版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 coffeescript 中使用 string.format() 或 sprintf()?

How do I string.format() or sprintf() in coffeescript?

推荐答案

这似乎可以解决问题:

String.prototype.format = ->
  args = arguments
  return this.replace /{(d+)}/g, (match, number) ->
    return if typeof args[number] isnt 'undefined' then args[number] else match

使用一些来自恐惧噬菌体的javascript

然后可以这样使用:

fmt = "<p>{0} {1} (<a href='mailto:{2}'>{2}</a>)</p>"
mystring = fmt.format "Fred", "Flinstone", "fflinstone@bedrock.gov"

mystring 将是:

mystring would then be:

<p>Fred Flinstone (<a href='mailto:fflinstone@bedrock.gov'>fflinstone@bedrock.gov</a>)</p>

使用#{var} 方法(虽然给出了完美的示例)不适用于需要多次回收的字符串.例如在循环情况下:

Using the #{var} approach (while perfect for example given) doesn't work with a string that needs to be recycled several times. In a looping situation for example:

  HTML_header       = fs.readFileSync('includes/notify/header.html').toString()
  HTML_managerOpen  = fs.readFileSync('includes/notify/managerOpen.html').toString()
  HTML_student      = fs.readFileSync('includes/notify/student.html').toString()
  HTML_managerClose = fs.readFileSync('includes/notify/managerClose.html').toString()
  HTML_footer       = fs.readFileSync('includes/notify/footer.html').toString()

HTML_final = HTML_header

   getter2 = (r, callback) ->
      HTML_final += HTML_managerOpen.format r.EMAIL, r.FNAME, r.LNAME, r.STUDENTS.length, r.PHONE, r.MEMAIL, r.MFNAME, r.MLNAME
      async.forEachSeries r.STUDENTS, getter3, (err) ->
        HTML_final += HTML_managerClose
        callback null

    getter3 = (r, callback) ->
      HTML_final += HTML_student.format r.EMAIL, r.FNAME, r.LNAME, r.PHONE, r.DESCRIPTION, r.ENROLLED, "", "", "", "", "", "", r.CERTEXAMSCORE, r.COIKEY
      callback null

async.forEachSeries results, getter2, (err) ->
  cback null, HTML_final + HTML_footer

这篇关于用于 javascript 或 node.js 的 string.format、sprintf() 等的咖啡脚本版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆