Страницы

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

суббота, 8 февраля 2020 г.

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

#javascript #jquery


Есть у меня 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
    


Ответы

Ответ 1



Тут есть 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; }); }

Ответ 2



В JavaScript у строки нет такого метода. Используйте indexOf для поиска есть ли такое вхождение подстроки. Если очень сильно хочется, то можно самому ее определить: String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

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

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