【发布时间】:2020-02-24 21:37:38
【问题描述】:
感谢您回答我的问题,我认为这不是插值,所以我更改了标题,在您将其标记为 duplicate 作为 JavaScript 中的字符串插值之前,请阅读问题仔细,因为我已经阅读了 JavaScript 的另一个插值问题,但其中没有一个具有与我的代码相同的方式(我在问题中说明了原因),并且我不想使用插件。
大家好,首先我想让你知道我编写这段代码的目的,你可以说这个主要原因是用 MySQL 为 Express 构建查询绑定,但我也会出于其他原因使用这段代码。
我想了解 Javascript / Typescript 中的字符串插值,它的工作原理类似于 Code Igniter source 中代码中的查询绑定
// Code 1
let person = 'ujang'
let age = 23
console.log("Hello, %s. You're age is %d years old.", person, age)
// Hello, ujang. You're age is 23 years old.
// The function is similiar to this code
// $sql = "insert into tbl_user (name, age, groupname) values (?, ?, ?)";
// $this->db->query($sql,array('codeigniter, 35, 'Group 1'));
正如您在上面的代码中看到的那样,我使用了 console.log,它可以按我的意愿工作,但是因为 console.log 是无效的并且没有返回任何值,所以我不能在实际情况下使用它。
// Code 2
const str = 'helow, %s. and you want %d piece of cake.?'
const name = 'ujang'
const want = 13
const myFunction = (value, ...optionalParams) => {
// The function I want is similiar with Query Binding in Code Igniter
// And it can handle dynamicly params
// This only sample
value = value.replace('%s', optionalParams[0])
value = value.replace('%d', optionalParams[1])
return value
}
myFunction(str, name, want)
// helow, ujang. and you want 13 piece of cake.?
在代码 2 中,我将尝试创建一个按预期工作的函数,但仅适用于静态参数。
// Code 3
const names = 'ujang'
const arg1 = 'good'
const argN = 'better'
const dontWantFunction = (value, arg1, argN) => {
return `helow, ${value}, this function is ${arg1} but any ${argN} solution.?`
}
dontWantFunction(names, arg1, argN)
// helow, ujang, this function is good but any better solution.?
在代码 3 中是我并不真正想要的函数,因为它很难管理并且函数内部有更多的硬编码文本。
有谁知道如何在Code 2中填写myFunction?
或任何从事类似代码工作的人。?
或者知道一些可以引导我找到这个解决方案的文档/文章。?
我正在等待您的回复,这将对我有很大帮助, 感谢您的关注。
【问题讨论】:
-
不,这在我的问题中看起来像代码 3。感谢您的关注。
-
这个问题有 18 个答案。全部 18 个看起来都像 Code 3?
-
哦,对不起@HereticMonkey,以前我只阅读了正确的答案,但是其中一些使用
${}和'str' + 'str',另一个使用插件Kiwi 和sprintf。这不是我真正想要的代码。 -
带有复选标记的答案是接受答案,这意味着它对原始提问者的帮助最大。这并不意味着它只是正确的答案,甚至完全正确。
-
我不明白你的意思,但是从 18 个答案中我没有看到我想要的类似答案,最近的是 Kiwi 插件和原型方式,但这不是我的方式想要我的代码。我已经有了下面的答案。但感谢您的关注。
标签: javascript typescript