Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的字符串替换(如查询绑定)_Javascript_Typescript - Fatal编程技术网

JavaScript中的字符串替换(如查询绑定)

JavaScript中的字符串替换(如查询绑定),javascript,typescript,Javascript,Typescript,感谢您回答我的问题,我认为这不是插值,因此我更改了标题,在您将其标记为JavaScript中的字符串插值之前,请仔细阅读问题,因为我已经阅读了JavaScript的另一个插值问题,但其中没有一个问题与我想要的代码相同(我告诉了问题的原因),我不想使用插件 大家好,首先我想让你们知道我在这段代码中的目的,你们可以知道这主要的原因是用MySQL为Express构建查询绑定,但我也会出于其他原因使用这段代码 我想了解Javascript/Typescript中的字符串插值,它的工作方式类似于CodeI

感谢您回答我的问题,我认为这不是插值,因此我更改了标题,在您将其标记为JavaScript中的字符串插值之前,请仔细阅读问题,因为我已经阅读了JavaScript的另一个插值问题,但其中没有一个问题与我想要的代码相同(我告诉了问题的原因),我不想使用插件

大家好,首先我想让你们知道我在这段代码中的目的,你们可以知道这主要的原因是用MySQL为Express构建查询绑定,但我也会出于其他原因使用这段代码

我想了解Javascript/Typescript中的字符串插值,它的工作方式类似于CodeIgniter中代码中的查询绑定

正如您在上面的代码中所看到的,我使用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

或者任何从事类似代码工作的人

或者了解一些文档/文章,这些文档/文章将引导我找到此解决方案

我在等待你的答复,这将对我有很大帮助,
感谢您的关注。

您可以尝试类似的方法,我们将按顺序从
optionalParams
中取出值,并在匹配值时替换

conststr='helow,{{value}。而你想要{{value}}块蛋糕
常数名称='ujang'
常数=13
常量myFunction=(值,…可选参数)=>{
返回值.replace(/\{value\}}/g,(m)=>optionalParams.shift()| m)
}

log(myFunction(str、name、want))
Well。非常感谢您的快速响应@CodeManiac。你能用比{{v}}短得多的costum{{value}}吗?@Sae是的,你可以用你想要的任何东西来代替
{value}
,你可以用
{v}
替换
{value}}
来替换
{v}}
来替换
{value}
我知道了,换成
{value}}}?和带有/\?/。不,在我的问题中看起来像代码3。谢谢你的关注。这个问题有18个答案。所有18个看起来都像代码3?哦,对不起@HereticMonkey,之前我只读了正确的答案,但是是的,其中一些使用${}和'str'+'str',另一个使用插件Kiwi和sprintf。这并不是我想要的代码。带复选标记的答案是公认的答案,这意味着它对最初的提问者帮助最大。我不明白你的意思,但从18个答案中我看不到我想要的类似答案,最接近的是Kiwi插件和原型方式,但这不是我想要的代码方式。我已经有了下面的答案。但是谢谢你的关注。
// 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.?