我有2个JavaScript的变量有值替换字符串的一部分值Name
和Age
变量转换为message
字符串以替换值为'John'和'14'的**Name**
和**Age**
?的Javascript中的特殊字符
var newmessage = 'I am John and my age is 14';
是否有我可以用来执行此操作的JavaScript函数?
我有2个JavaScript的变量有值替换字符串的一部分值Name
和Age
变量转换为message
字符串以替换值为'John'和'14'的**Name**
和**Age**
?的Javascript中的特殊字符
var newmessage = 'I am John and my age is 14';
是否有我可以用来执行此操作的JavaScript函数?
使用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)
或者使用的对象,而不是变量用于存储值,让你可以轻松地,甚至它不是在全球范围内定义的值。
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)
简单string.replace()功能
var Name = 'John';
var Age = '14';
var message = 'I am **Name** and my age is **Age**';
message = message.replace('**Name**' ,Name).replace('**Age**' , Age);
console.log(message)
简单比普拉纳夫回答 – Mahi
如果替换变量的数量是像这里使用的固定数量一样,我会选择这个作为简单的答案(抱歉,我没有在我的帖子中提到,我可以有更多) –
我给你+1如果我从名字中删除'e',非常感谢你的朋友 –
这个怎么样的解决方案尝试。如果这些子字符串实际上是字符串消息的一部分,则检查FIRST。希望能帮助到你!
var Name = 'John';
var Age = '14';
var message = "I am **Name** and my age is **Age**";
console.log(myFunction(message));
function myFunction(str){
var finalMessage = "";
if(str.indexOf("**Name**") !== -1){
finalMessage = str.replace('**Name**' ,Name);
}
if(finalMessage.indexOf("**Age**") !== -1){
finalMessage = finalMessage.replace("**Age**" ,Age);
}
return finalMessage;
}
为什么窗口对象。什么是'_'? – Mahi
@Mahi:你可以从'window'对象访问全局变量 –
@Mahi:'_'是一个参数....因为我们只需要捕获的值,所以我们可以避免这一点....所以我只是使用'_' –