Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена слов в тексте (https://javascript.ru/forum/misc/61712-zamena-slov-v-tekste.html)

Krinkels 04.03.2016 16:00

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

рони 04.03.2016 16:17

Krinkels,
вместо границы слова поставить не буква

Krinkels 04.03.2016 17:20

Спасибо за совет, буду дальше разбираться

Krinkels 04.03.2016 17:32

рони,
Если не затруднит, помогите с примером, что то не выходит у меня каменный цветок

рони 04.03.2016 18:02

Krinkels,
Key = 'Test1';

alert( 'Test1.Test2'.replace( new RegExp( '(^|\\W)(' + Key + ')(\\W)' ), "$1Test2$3" ) );

Krinkels 04.03.2016 22:42

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

Почти то что нужно :)


Часовой пояс GMT +3, время: 05:21.