Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2016, 16:00
Новичок на форуме
Отправить личное сообщение для Krinkels Посмотреть профиль Найти все сообщения от Krinkels
 
Регистрация: 04.03.2016
Сообщений: 4

Замена слов в тексте
Господа, помогите разобраться. Есть некий текст, в нем нужно заменить определенные слова из списка. Вот и с этой заменой возникла проблема. Допустим, в тексте есть такое словосочетание: "Test1.Test2", и есть ключевое слово: "Test1". Пробую так, для теста:
Key = 'Test1';
alert( 'Test1.Test2'.replace( new RegExp( '\\b(' + Key + ')\\b' ), "Test2" ) );
Естественно Test1 заменяется на Test2. Так вот, можно ли как то запретить заменять подобные конструкции? Если в тексте просто "Test1", то он заменяется, НО, если в тексте "Test1.Test2" то замена не происходит.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2016, 16:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Krinkels,
вместо границы слова поставить не буква
Ответить с цитированием
  #3 (permalink)  
Старый 04.03.2016, 17:20
Новичок на форуме
Отправить личное сообщение для Krinkels Посмотреть профиль Найти все сообщения от Krinkels
 
Регистрация: 04.03.2016
Сообщений: 4

Спасибо за совет, буду дальше разбираться
Ответить с цитированием
  #4 (permalink)  
Старый 04.03.2016, 17:32
Новичок на форуме
Отправить личное сообщение для Krinkels Посмотреть профиль Найти все сообщения от Krinkels
 
Регистрация: 04.03.2016
Сообщений: 4

рони,
Если не затруднит, помогите с примером, что то не выходит у меня каменный цветок
Ответить с цитированием
  #5 (permalink)  
Старый 04.03.2016, 18:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Krinkels,
Key = 'Test1';

alert( 'Test1.Test2'.replace( new RegExp( '(^|\\W)(' + Key + ')(\\W)' ), "$1Test2$3" ) );
Ответить с цитированием
  #6 (permalink)  
Старый 04.03.2016, 22:42
Новичок на форуме
Отправить личное сообщение для Krinkels Посмотреть профиль Найти все сообщения от Krinkels
 
Регистрация: 04.03.2016
Сообщений: 4

Пока сделал так,
Key = 'Test1';
alert( 'Test1.Test2 '.replace( new RegExp( '\\b(' + Key + ')\\s' ), "Test3" ) );
Key = 'Test1';
alert( 'Test1 '.replace( new RegExp( '\\b(' + Key + ')\\s' ), "Test3" ) );

Почти то что нужно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена слов по списку EvgenStor Общие вопросы Javascript 40 26.09.2017 03:29
document.body.innerHTML.replace. Замена нескольких слов nule Общие вопросы Javascript 10 11.03.2015 16:14
Замена текста в тексте martinss Общие вопросы Javascript 3 26.04.2011 15:41
замена в тексте Артем125 Javascript под браузер 7 24.09.2010 18:09
Замена слов в тексте Dan T Общие вопросы Javascript 8 18.03.2009 12:36