#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, чтобы оно не соответствовало никаким числам, так что на данный момент все в порядке ^^ Я все еще думаю о правильном способе сделать это 🙂