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

рони 27.02.2016 13:18

simple,
var str = "верх верх-низ влево-вправо назад-вперед";
str = str.replace(/(^|\s)верх\S+/g,"$1верх-вправо");
alert(str)

simple 27.02.2016 14:16

рони, находит только "верх-низ" и заменяет его, а просто "верх" остается не тронутым. Логика такая, найти все слова начинающиеся с "верх" и заменить их на "верх-вправо"

simple 27.02.2016 15:30

методом тыка добавил "?" в выражение, не знаю насколько это правильно.
var str = "верх верх-низ влево-вправо назад-вперед";
str = str.replace(/(?:верх)?\S+/g, 'верх-право');
alert(str);


Работает не правильно заменяет всё на "верх-право".

рони 27.02.2016 15:46

Цитата:

Сообщение от simple
Логика такая, найти все слова начинающиеся с "верх" и заменить их на "верх-вправо"

сразу бы так написали
var str = "верх верх-низ влево-вправо назад-вперед";
str = str.replace(/(^|\s)верх\S*/g,"$1верх-вправо");
alert(str)

simple 27.02.2016 19:04

рони,спасибо большое что помогаете.
А если просто вот так написать?
str = str.replace(/верх?\S+/g,"верх-право");

Работает как надо, но не слишком ли я упростил, есть подводные камни какие нибудь в этом?

рони 27.02.2016 19:20

simple,
если вам ненужны вертикаль и сверка то пожалуйста :)


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