我想使用静态定义的模板来构建URL。
我正在尝试为此使用 ES6 字符串插值功能
var template = "http://example.com/?name=${name}&age=${age}";
var name = "John";
var age = "30";
var url = `${template}`;
预期结果:http://example.com/?name=John
实际结果:http://example.com/?name=${name}
如果这不能用字符串插值来实现,那么还有比<code>string.prototype更好的方法。替换like
var url = template.replace(/\${name}/,"John").replace(/\${age}/, 23);
也许我误解了您的问题/用例,但您应该能够在没有“模板”变量的情况下做到这一点。只需将当前分配给“模板”的值直接分配给“URL”,并使用反引号代替引号:
var name = "John";
var age = "30";
var url = `http://example.com/?name=${name}&age=${age}`;
结果是:<code>http://example.com/?name=John
以下是如果值在后面,但您仍然希望使用模板,您将如何处理此问题:
var template = (name, age) => `http://example.com/?name=${name}&age=${age}`;
// these come after template is defined
var name = "John";
var age = "30";
console.log(template(name, age));
如果问题与递归有关:
您使用了双引号 “
而不是反引号 '
否则它将工作:
var name = "John";
var age = "30";
var template = `http://example.com/?name=${name}&age=${age}`
var url = `${template}`;
https://jsfiddle.net/kab48ht5/
如果您所要做的只是将一些值转换为正确的URL格式,您可以尝试并遵循以下解决方案:https://stackoverflow.com/a/22678412/185672
变量在计算文本时被替换,因此您无法创建以后可以用变量替换的通用模板:
var template = `http://example.com/?name=${name}&age=${age}`;
var name = "John";
var age = "30";
console.log( template ); // "http://example.com/?name=undefined&age=undefined"
编辑:为那些重用控制台会话并从以前的实验中定义变量的人设置:https://jsfiddle.net/nwvcrryt/
您也不能将字符串文字“我的名字是 ${name}”
转换为您尝试执行的模板。
但是,您可以使用一个函数来获取名称和年龄并返回所需的 url:
const formatUrl = (name, age) => `http://example.com/?name=${name}&age=${age}`;
let name = "John";
let age = "30";
let url = formatUrl( name, age ); // "http://example.com/?name=John&age=30"
Kotlin有一个很好的特性,叫做字符串模板。我真的很喜欢。 但是否可以在模板中设置任何格式?例如,我想在kotlin中设置字符串模板中的Double格式,至少要在小数分隔符后设置一些位数:
主要内容:指定最小输出宽度,指定对齐方式,指定小数精度我们在《 第一个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。 print() 函数使用以 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。
Parameter Position参数位置 Type参数类型 Required必需 Default默认 Description描述 1 string Yes n/a This is what format to use. (sprintf) 使用的格式化方式 This is a way to format strings, such as decimal numbers and such. Us
Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := p
3.5. 格式化字符串 Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式, 但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 在 Python 中, 字符串格式化使用与 C 中 sprintf 函数一样的语法。 例 3.21. 字符串的格式化 >>> k = "uid" >>> v = "sa" >>> "%s=%s" % (k, v) 'uid=s
由来 我一直对Slf4j的字符串格式化情有独钟,通过{}这种简单的占位符完成字符串的格式化。于是参考Slf4j的源码,便有了StrFormatter。 StrFormatter.format的快捷使用方式为StrUtil.format,推荐使用后者。 使用 //通常使用 String result1 = StrFormatter.format("this is {} for {}", "a", "