Заменить строку между конкретными символами - PullRequest
0 голосов
/ 19 октября 2011

У меня проблема с добавлением динамических значений в строку.

Например:

My name is < NAME >

Теперь я хочу заменить NAME своим именем, чтобы моя строка стала:

My name is anything.

Как мне этого добиться?

Динамическая часть всегда будет между <>.

Ответы [ 4 ]

2 голосов
/ 19 октября 2011
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***';
            }
        }
    );

Я использую анонимные функции javascript, которые «закрываются» вокруг переменных name и surname.

Проверьте это здесь: http://jsfiddle.net/rZuNX/1/

0 голосов
/ 19 октября 2011

/< NAME >/.replace("My name is < NAME >", "anything") является основной формой для выражения regualr, очевидно, вы можете затем начать манипулировать регулярным выражением, чтобы соответствовать другим вещам. W3Schools является хорошей отправной точкой для RegExp в Javascript, и этот онлайн-тестер очень хорош.

0 голосов
/ 19 октября 2011
var str = "My name is < NAME >";
 str = str.replace("NAME", "anything");
0 голосов
/ 19 октября 2011
"I have <name>".replace(/<name>/, 'Any Thing')

результат в I have Any Thing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...