Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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_Jquery - Fatal编程技术网

Javascript 用变量替换字符串值

Javascript 用变量替换字符串值,javascript,jquery,Javascript,Jquery,我有一个字符串数组,在每个字符串中我想调用一个变量 Strings = ["$username thanks for visiting","Thanks $username, but I don't understand the command $userProvidedCommand"] 现在我知道我可以用字符串替换 msg.replace('$username', userame) 但是,我不想为每种可能性编写一个字符串替换 我想什么才是最理想的。将有某种类型的模式替换,其中它查找$,将

我有一个字符串数组,在每个字符串中我想调用一个变量

Strings = ["$username thanks for visiting","Thanks $username, but I don't understand the command $userProvidedCommand"]
现在我知道我可以用字符串替换

msg.replace('$username', userame)
但是,我不想为每种可能性编写一个字符串替换

我想什么才是最理想的。将有某种类型的模式替换,其中它查找$,将字符串拆分,并将其与变量连接在一起

有没有办法做到这一点,或者有更好的解决办法


谢谢

您可以使用正则表达式:

var data = {
  username: 'peterpan',
  userProvidedCommand: 'mycommand'
}

var format = function(data, str) {
  return str.replace(/\$(\w+)/g, function(_, m) {
    return data[m] || ''
  })
}

var result = strings.map(format.bind(null, data))

可以使用正则表达式执行此操作:

var data = {
  username: 'peterpan',
  userProvidedCommand: 'mycommand'
}

var format = function(data, str) {
  return str.replace(/\$(\w+)/g, function(_, m) {
    return data[m] || ''
  })
}

var result = strings.map(format.bind(null, data))

可以使用正则表达式执行此操作:

var data = {
  username: 'peterpan',
  userProvidedCommand: 'mycommand'
}

var format = function(data, str) {
  return str.replace(/\$(\w+)/g, function(_, m) {
    return data[m] || ''
  })
}

var result = strings.map(format.bind(null, data))

可以使用正则表达式执行此操作:

var data = {
  username: 'peterpan',
  userProvidedCommand: 'mycommand'
}

var format = function(data, str) {
  return str.replace(/\$(\w+)/g, function(_, m) {
    return data[m] || ''
  })
}

var result = strings.map(format.bind(null, data))

抱歉,只是要转储一个链接,您不能为每个字符串提供一个键吗?然后用钥匙代替?循环数组并替换每个键Orry只是想转储一个链接您不能为每个字符串提供一个键吗?然后用钥匙代替?循环数组并替换每个键Orry只是想转储一个链接您不能为每个字符串提供一个键吗?然后用钥匙代替?循环数组并替换每个键Orry只是想转储一个链接您不能为每个字符串提供一个键吗?然后用钥匙代替?循环数组并替换每个键我想这会告诉我我要去哪里,谢谢你的提示回答快速问题如果我没有一个好的整洁的所有变量怎么办object@mcgrailm,我只是把它们放在一个对象中,在ES6中甚至有一个快捷方式,
{a:a,b:b,c:c}==={a,b,c}
我想这会让我走到哪里,谢谢你的及时回答快速问题如果我没有一个好的整洁的表格中的所有变量怎么办object@mcgrailm,我只是把它们放在一个对象中,在ES6中甚至有一个快捷方式,
{a:a,b:b,c:c}==={a,b,c}
我想这会让我走到哪里,谢谢你的及时回答快速问题如果我没有一个好的整洁的表格中的所有变量怎么办object@mcgrailm,我只是把它们放在一个对象中,在ES6中甚至有一个快捷方式,
{a:a,b:b,c:c}==={a,b,c}
我想这会让我走到哪里,谢谢你的及时回答快速问题如果我没有一个好的整洁的表格中的所有变量怎么办object@mcgrailm,我只是把它们放在一个对象中,在ES6中甚至有一个快捷方式来表示
{a:a,b:b,c:c}==={a,b,c}