0
Answered

Как исключить из строки обратный слэш?

Евгений Лешкив 5 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 2 years ago 10
Подскажите, пжст, как исключить из строки обратный слэш?
Получаю строку вида: http:\/\/ip.ru\/one\/two\/picture.jpg

Вот это не работает
string.replace('\\','');
В продолжение решаемой мной задачи.
Я получаю некую текстовую строку (она в конце сообщения). Формат должен быть JSON, но компилятор ругается, когда я его пытаюсь преобразовать в JSON объект.

//Параметры устройства
"Audioscrobbler", TCP, ws.audioscrobbler.com, порт 80
Команда для кнопки: GET, /2.0/?api_key=93bea35d40c4a58e034d14eb85e840c2&format=json&callback=fni80jqyfp&method=artist.getinfo&artist=Lady%20Waks

//Код для получения данных
var GetPicture_1 = new GetPicture("Audioscrobbler","Page");
function GetPicture(DeviceName,Page)
{
var DEVICE = IR.GetDevice(DeviceName);
IR.AddListener(IR.EVENT_RECEIVE_TEXT, DEVICE, function(inText)
{
var JSONObject = JSON.Parse(inText);
IR.Log("Text = " + name);
});
}

//ругательства компилятора на строку var JSONObject = JSON.Parse(inText);
WARNING Script exception: SyntaxError: C:\Users\evgeniy\Documents\iRidium mobile 2\Settings\iRidium\Main\GetPicture.js:8: <string>:1: expected ')' but got ';'

//получаемая строка
Text = fni80jqyfp(
{"artist":
{"name":"Lady Waks","mbid":"4b45f0d8-33e1-45ce-bb2e-6b8e87cfbbb9","url":"http:\/\/www.last.fm\/music\/Lady+Waks","image": [{"#","size":"small"}, //форма на форуме заменила это на картинки
//на самом деле это ссылка как в первом посте с обратными слэшами
{"#","size":"medium"},
{"#","size":"large"},
{"#","size":"extralarge"},
{"#","size":"mega"}],
........
Under review
Добрый день, Евгений!

Заменять слеши не требуется. Вам необходимо убрать из строки слова из начала "fni80jqyfp(" и из конца ");"

var changeTextPart1 = inText.replace("fni80jqyfp","");
var changeTextPart2 = changeTextPart1.replace(/\(/,"");
var changeTextPart3 = changeTextPart2.replace(/\);/,"");

А затем полученную строчку changeTextPart3 отправить на parse в JSON.

Audioccrobbler.irpz

Преобразовать в JSON действительно получилось. Спасибо!
Еще один вопрос. У меня получается получить все данные из массива, кроме тех, ради которых все это задумано.
Из этой строки нужна ссылка на картинку для обложки альбома.
{"artist":
{"name":"Lady Waks","mbid":"4b45f0d8-33e1-45ce-bb2e-6b8e87cfbbb9","url":"http:\/\/www.last.fm\/music\/Lady+Waks","image":
[{"#text":"xxxx:\/\/userserve-ak.last.fm\/serve\/34\/5674126.yyy","size":"small"}, //заменил http на xxxx, а jpg на yyy
Размер могу получить, а вот ссылку нет. Полагаю дело в решетке перед атрибутом text/ Подскажите, как правильно заполучить ссылку


Добрый день, Евгений!
Обращайтесь к полю "#text" через квадратные скобки, например:

var t = JSON.Parse({"#text":"xxxx:\/\/userserve-ak.last.fm\/serve\/34\/5674126.yyy","size":"small"});
IR.Log(t["#text"]);