Изменение группы символов в строке

#javascript #vue.js

#javascript #vue.js

Вопрос:

Допустим, у меня есть эта строка: str = ‘236112456’

Я хочу изменить ‘236’ на что-то другое, и если символ один, измените на другое.

я пробовал что-то подобное :

  var result = 
    str.replaceAll('236', '236.jpg')
    .replaceAll('1', '1.jpg')
    .replaceAll('2', '2.jpg')
    .replaceAll...
  

но это не займет 236 и изменит только отдельные буквы…

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

Заранее спасибо за вашу помощь 🙂

[редактировать] — Ошибки в примере кода

Комментарии:

1. у вас нет '236' в строке…

2. Кроме того, вы не можете написать str.replaceAll() в цепочке, как вы это делали… Вы должны написать str.replaceAll().replaceAll().replaceAll() …

3. упс, действительно, мне удалось сделать ошибку в примере.

4. Привет, просто если вы замените 236 в качестве первого элемента, то 2 замените [2]36 , я понял ваш вопрос, который вам нужно проверить перед заменой, потому что во всех случаях каждая replaceAll итерация переопределяет последнюю,

Ответ №1:

Вот решение. Пожалуйста, используйте выражение регулярного выражения вместо строки ’23’.

 str = '236112456';
var result = str.replaceAll(/236/gi, '236.jpg').replaceAll(/1/gi, '1.jpg');
...
  

Результат таков "236.jpg1.jpg1.jpg2456" . Разве это не то, что вы ищете?

Комментарии:

1. Спасибо за ваш ответ, я только что попробовал, но, похоже, это не работает :/

2. Я только что подробно обновил свой ответ. Проверьте результат, если это то, что вы собираетесь делать.

3. Я попробовал еще раз, но нет, он меняет каждую букву, но не всю группу. На данный момент я изменил название jpg, чтобы оно не соответствовало никаким числам, так что на данный момент все в порядке ^^ Я все еще думаю о правильном способе сделать это 🙂