替换特定字符之间的字符串

时间:2011-10-19 09:47:31

标签: javascript string replace

我有一个问题是将动态值添加到字符串中。

例如:

My name is < NAME >

现在我想用我的名字替换NAME所以我的字符串将成为:

My name is anything.

我怎么能做到这一点?

动态部分将始终位于<>之间。

4 个答案:

答案 0 :(得分:2)

var result = "My name is < NAME >".replace("< NAME >", "anything");
你想要这个吗?或者你正在寻找更复杂的东西来填充< and >之间的所有单词?类似的东西:

var matches = "My name is < NAME > < SURNAME >".match(/<[^>]+>/g);

如果您想更换多个部件,可以这样做:

var replacer = function (str)  
{  
    if (str === '< NAME >')
    {
        return 'anything';
    }
    else
    {
        return 'nothing';
    }
};

var replaced = 'My name is < NAME > < SURNAME >'.replace(/<[^>]+>/g, replacer));

在这里测试:

http://jsfiddle.net/rZuNX/

更完整的例子:

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***';
            }
        }
    );

我使用的是围绕namesurname变量“关闭”的JavaScript匿名函数。

在此测试:http://jsfiddle.net/rZuNX/1/

答案 1 :(得分:0)

"I have <name>".replace(/<name>/, 'Any Thing')

结果为I have Any Thing

答案 2 :(得分:0)

var str = "My name is < NAME >";
 str = str.replace("NAME", "anything");

答案 3 :(得分:0)

/< NAME >/.replace("My name is < NAME >", "anything")是regualr表达式的基本形式,显然你可以开始操纵regexp来匹配其他东西。 W3Schools是Javascript中RegExp的一个很好的起点,这个online tester非常好。