Страницы

Поиск по вопросам

пятница, 12 апреля 2019 г.

Поменять расположение символов в строке

Есть у меня value в которой содержится строка наподобие руб.260000 (обязательно присутствуют символы & или #) Мне нужно поменять элементы передвинуть число 260000 вперед, а закодированную кирилицу руб. назад - вот так: 260000руб.
if(value.contains("&#")) { var out = value.replace(/^([^\d]*)([\d]*)/g,'$2 $1'); console.log(out); }
вот так получаю ошибку - value.contains is not a function


Ответ

Тут есть 2 проблемы:
В JavaScript нет метода String.prototype.contains Регулярное выражение в вашем примере кода не будет работать так, как вы того ожидаете.
Таким образом, правильный код выглядит как-то так:
if(value.toString().indexOf("&#") !== -1) { var out = value.replace(/^(.*?)([\d]*)$/, '$2$1'); console.log(out); }
UPD:
Если нужно каким-то образом изменить части строки перед перестановкой, можно использовать следующий подход:
if(value.toString().indexOf("&#") !== -1) { var out = value.replace(/^(.*?)([\d]*)$/, function(match, p1, p2) { // p1 и p2 группы, захваченные регулярным выражением. // Если value = 'руб.260000', то: // p1 = 'руб.' // p2 = '260000' // Для примера, склеим эти строки вместе в обратном порядке. return p2 + p1; }); }

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

Отправить комментарий