下面是我在的NSString用...Javascript有类似%d的东西吗?
[NSString stringWithFormat:@"This is a digit %d", 10];
的10值将转到%d ....和字符串将成为“这是一个数字10”,有没有类似的事情在JavaScript?谢谢...另外,我想知道,这是什么电话?
下面是我在的NSString用...Javascript有类似%d的东西吗?
[NSString stringWithFormat:@"This is a digit %d", 10];
的10值将转到%d ....和字符串将成为“这是一个数字10”,有没有类似的事情在JavaScript?谢谢...另外,我想知道,这是什么电话?
没有内置的字符串格式,但您可以使用JavaScript库执行相同的操作:sprintf()
。
JavaScript中没有这样的东西,但你可以构建your own printf。
这可以使用正则表达式。
http://www.regular-expressions.info/javascript.html这是一个相当不错的主题网站,请参阅“替换文本语法”部分。
你可以在Javascript轻松连接字符串:
var str = "This is a digit " + 10;
bob.js JS framework允许这样做:
var sFormat = "My name is {0} and I am version {1}.0.";
var result = bob.string.formatString(sFormat, "Bob", 1);
console.log(result);
//output:
//==========
// My name is Bob and I am version 1.0.
- 吉兹
这里有一个简单的sprintf实现我发现。它被构建为角度滤波器,但逻辑当然可以被拉出。
https://gist.github.com/jakobloekke/7303217
angular.module('filters')
.filter('sprintf', function() {
function parse(str) {
var args = [].slice.call(arguments, 1),
i = 0;
return str.replace(/%d/g, function() {
return args[i++];
});
}
return function() {
return parse(
Array.prototype.slice.call(arguments, 0,1)[0],
Array.prototype.slice.call(arguments, 1)
);
};
});
用法:
$filter('sprintf')(
"Hello %d. It's %d nice to see you!",
"World",
"very"
);
或
scope.values = ["World", "very"];
<p ng-bind="message | sprintf: values"></p>
现在,我们有模板的字符串,其实现了非常类似的事情。他们的工作方式如下:
var message = "Hello world"
console.log(`This is my message: ${message}. Don't you love it?`)
模板文字通过“定义它们并使用$ {var}来包含变量来标识。
它被称为[sprintf](http://www.diveintojavascript.com/projects/javascript-sprintf) – Khez 2011-04-15 15:38:25