Javascript - 替换特殊字符中的字符串的一部分

sup*_*ser 1 javascript

我有2个具有值的javascript变量:

var Name = 'John';
var Age = '14';
Run Code Online (Sandbox Code Playgroud)

和另一个看起来像这样的字符串变量:

var message = 'I am **Name** and my age is **Age**';
Run Code Online (Sandbox Code Playgroud)

如何将字符串中的值NameAge变量注入message字符串以替换值**Name****Age**'John'和'14'?

var newmessage = 'I am John and my age is 14';
Run Code Online (Sandbox Code Playgroud)

我可以使用javascript函数来执行此操作吗?

Pra*_*lan 5

使用String#replace方法并从window对象获取变量(仅当在全局上下文中定义变量时,才能使用您需要使用eval()我不喜欢使用的方法的其他方法).

var Name = 'John';
var Age = '14';
var message = 'I am **Name** and my age is **Age**';
var newmessage = message.replace(/\*\*([\w\d]+)\*\*/g, function(m, m1) {
  return window[m1];
});

console.log(newmessage)
Run Code Online (Sandbox Code Playgroud)


或者使用对象而不是变量来存储值,这样即使它没有在全局上下文中定义,您也可以轻松获得值.

var obj = {
  Name: 'John',
  Age: '14'
};
var message = 'I am **Name** and my age is **Age**';
var newmessage = message.replace(/\*\*([\w\d]+)\*\*/g, function(m, m1) {
  return obj[m1];
});

console.log(newmessage)
Run Code Online (Sandbox Code Playgroud)