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");