我想尝试制作像
这样的东西var stringUrlTemplate = home.url + '/data/[param1]/[param2]/' + endurl;
而不是某种循环中的东西:
outputUrlItem = print(stringUrlTemplate, someVarialbe, someVariable);
基本上C / C ++可以做什么。
我不能使用" / data / $ {param1} / $ {param2} /"因为一个字符串是由服务器separetly从JavaScript提供的。
答案 0 :(得分:2)
您可以使用可以替换的占位符。这是一个例子
if (!String.prototype.format) {
String.prototype.format = function() {
var args = arguments;
return this.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined' ?
args[number] :
match;
});
};
}
var stringUrlTemplate = '/data/{0}/{1}/';
console.log(stringUrlTemplate.format('data1', 'data2'))
OR,
function printf() {
var args = Array.prototype.slice.call(arguments, 1);
var str = arguments[0];
return str.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined' ?
args[number] :
match;
});
};
var stringUrlTemplate = '/data/{0}/{1}/';
console.log(printf(stringUrlTemplate, 'data1', 'data2'))
答案 1 :(得分:1)
这个包允许可重用的模板文字 - reuse-template-tag,也许它可以帮助,这是他们文档中的例子:
const reuseTemplateTag = require('reuse-template-tag')
const template = reuseTemplateTag`
- Hey ${1} How are You?
- Are You ok ${1} ?
- Yes, thanks ${'me'}!
`
console.log(
template({
1: 'Joe',
me: 'Andy'
})
)
// Or provide sequence of values with Array
console.log(
template(['Joe', 'Molly', 'Susan'])
)