这是我在NSString中使用的东西......
[NSString stringWithFormat:@"This is a digit %d", 10];
10值将转到%d ....,字符串将变为“这是一个数字10”,javascript中是否有类似的东西?谢谢...另外,我想知道,这是什么电话?
答案 0 :(得分:4)
没有内置字符串格式,但您可以使用JavaScript库执行相同操作:sprintf()
。
答案 1 :(得分:4)
您可以在Javascript中轻松连接字符串:
var str = "This is a digit " + 10;
答案 2 :(得分:2)
答案 3 :(得分:1)
javascript中没有此类内容,但您可以构建your own printf。
答案 4 :(得分:1)
这可以使用正则表达式。
http://www.regular-expressions.info/javascript.html这是一个相当不错的主题网站,请参阅“替换文字语法”一节。
答案 5 :(得分:0)
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.
- 坦吉斯
答案 6 :(得分: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>
答案 7 :(得分:0)
如今,我们有模板字符串,它完成了非常相似的事情。他们的工作方式如下:
var message = "Hello world"
console.log(`This is my message: ${message}. Don't you love it?`)
模板文字由``定义它们并使用$ {var}包含变量来识别。