Javascript 替换特定字符之间的字符串
我在将动态值添加到字符串时遇到问题 例如:Javascript 替换特定字符之间的字符串,javascript,string,replace,Javascript,String,Replace,我在将动态值添加到字符串时遇到问题 例如: My name is < NAME > 我怎样才能做到这一点 动态部分将始终在“我有”之间。替换(//,“任何东西”) 结果在我有任何东西var result=“我的名字是”。替换(“”,“任何东西”); var result = "My name is < NAME >".replace("< NAME >", "anything"); 你想要这个吗?或者,您正在搜索更复杂的内容,以枚举之间的所有单词?比如
My name is < NAME >
我怎样才能做到这一点
动态部分将始终在
“我有”之间。替换(//,“任何东西”)
结果在我有任何东西var result=“我的名字是”。替换(“”,“任何东西”);
var result = "My name is < NAME >".replace("< NAME >", "anything");
你想要这个吗?或者,您正在搜索更复杂的内容,以枚举<和>
之间的所有单词?比如:
var matches = "My name is < NAME > < SURNAME >".match(/<[^>]+>/g);
var matches=“我的名字是”.match(/]+>/g);
如果要更换多个零件,可以执行以下操作:
var replacer = function (str)
{
if (str === '< NAME >')
{
return 'anything';
}
else
{
return 'nothing';
}
};
var replaced = 'My name is < NAME > < SURNAME >'.replace(/<[^>]+>/g, replacer));
var replacer=函数(str)
{
如果(str==='')
{
返回“任何东西”;
}
其他的
{
返回“无”;
}
};
var replaced='My name is'。replace(/]+>/g,replace));
在此处测试:
一个更完整的示例:
var name = 'anything';
var surname = 'anyone';
var myInputText = "My name is < NAME > < SURNAME >";
var replaced = myInputText
.replace(/<[^>]+>/g,
function (str)
{
if (str === '< NAME >')
{
return name;
}
else if (str === '< SURNAME >')
{
return surname;
}
else
{
return '***error***';
}
}
);
var name='anything';
var姓氏=‘任何人’;
var myInputText=“我的名字是<姓名><姓氏>”;
替换变量=myInputText
.替换(/]+>/g,
功能(str)
{
如果(str==='')
{
返回名称;
}
else if(str=='<姓氏>'))
{
返回姓氏;
}
其他的
{
返回“***错误***”;
}
}
);
我正在使用javascript匿名函数来“关闭”名称
和姓氏
变量
在这里测试它:var str=“我的名字是”;
str=str.replace(“名称”、“任何内容”);
//.replace(“我的名字是”,“任何东西”)
是正则表达式的基本形式,显然您可以开始操作regexp以匹配其他内容。W3Schools是Javascript中一个很好的起点,这非常好。可能重复感谢回复。。。但可能会有名字以外的任何东西。它也应该是可复制的。如何做到这一点???请查看问题下方评论中的链接。对于多个替换,请使用/g修改器,只需在子项中循环,并在循环中执行操作。当然,将功能封装到类中会更好。感谢您的回复,我希望“<>”之间的任何内容都应该替换为我将给出的另一个值。可能是名字、城市等。。此外,我不知道字符串,除非我知道应该替换“”之间的文本,即它。@adn295有关多个匹配项,请参见最后一个示例。您可以将值保存在“名称”“姓氏”变量中。@adn295更改了示例(最后一个)。像那样?
var replacer = function (str)
{
if (str === '< NAME >')
{
return 'anything';
}
else
{
return 'nothing';
}
};
var replaced = 'My name is < NAME > < SURNAME >'.replace(/<[^>]+>/g, replacer));
var name = 'anything';
var surname = 'anyone';
var myInputText = "My name is < NAME > < SURNAME >";
var replaced = myInputText
.replace(/<[^>]+>/g,
function (str)
{
if (str === '< NAME >')
{
return name;
}
else if (str === '< SURNAME >')
{
return surname;
}
else
{
return '***error***';
}
}
);
var str = "My name is < NAME >";
str = str.replace("NAME", "anything");