Javascript: Как я могу заменить содержимое строки, но не в теге HTML? - PullRequest
1 голос
/ 28 апреля 2010

Я хочу написать функцию Javascript для изменения текста Lasvegas в строке: пример:

" Привет всем в Ласвегасе, приходите в Ласвегас со мной "

Как я могу изменить текст "Lasvegas", но не изменить содержимое Lasvegas , содержащееся в теге HTML?

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Может быть что-то подобное

str.replace(/Lasvegas[^<]/,'123')
0 голосов
/ 28 апреля 2010

РЕДАКТИРОВАТЬ: Забыли JavaScript поддерживает негативные взгляды:

"Hello every one in Lasvegas, come <a href='xxx'>Lasvegas</a> with me"
    .replace(/(Lasvegas(?!<))/g, "World");

Возвращает:

Привет всем в мире, приходите Ласвегас со мной

<ч /> Оставил так, чтобы все могли видеть, насколько бессмысленным был мой первый ответ; -)

Ответ Алексея сработал бы, если бы «Ласвегас» не был в конце строки. Я не уверен, есть ли лучший способ, но вы могли бы использовать функцию заменителя, чтобы установить, находится ли текст внутри тега или нет:

var str = "Hello every one in Lasvegas, come <a href='xxx'>Lasvegas</a> with me";
var out = str.replace(
            /(>?Lasvegas<?)/g,
            function ($0) 
            { 
                if ($0.slice(0,1) == ">") 
                    return $0; 
                else
                    return "World";
            }
);

содержание out:

Привет всем в Мире, приходите Ласвегас со мной

...