2013-04-04 71 views
4

浏览器,如Chrome和Firefox提供console API,使格式化日志消息的排放,是这样的:本地JavaScript类printf函数

>>> console.log("%s has %d points", "Sam", "100"); 
Sam has 100 points 

现在,假设我要产生一个格式化字符串,但不必须将其登录到控制台。浏览器是否公开了生成日志字符串的本机函数?它是ECMA标准的吗?或者我们现在应该满足第三方库如JavaScript sprintf

+0

没有本土还没有,但这里有一个图书馆 - http://www.diveintojavascript.com/projects/javascript-sprintf – Ian 2013-04-04 18:52:05

+0

@Ian是的!这是在问题中提到的。这个库令人印象深刻。 – Humberto 2013-04-04 18:53:34

+0

废话,我是个白痴。哈哈我甚至没有注意到这个问题,对此抱歉。该链接的文本是沉闷的,因为我之前访问过它,所以它与其他文本混合(并且我清楚地没有完全阅读你的问题):( – Ian 2013-04-04 18:54:33

回答

4

ES6将介绍一些基本的字符串形式格式化:

`${name} has ${val} points`; 

但目前尚未有本地字符串在ES5格式化。

+1

这将是伟大的,它让我想起了我的旧Perl时代。 .. – Humberto 2013-04-04 18:54:28

+2

这与printf不太相似,在这种情况下,name和val应该是define – albanx 2016-09-02 15:11:47

0

我不认为你可以自己做。你可以编写你自己的javascript toString函数来处理不同的选项。

或者你可以做

var samuel = "sam"; 
var someNumber = 100; 

var someString = samuel + " has " + someNumber + " points";