Есть у меня 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;
});
}
Комментариев нет:
Отправить комментарий