У меня есть строка, которая выглядит как массив строк. Мне нужен шаблон регулярных выражений в javascript, чтобы извлечь подстроки внутри этой мастер-строки и вернуть мне подстроку. Посмотрите на приведенную ниже строку, и мне нужно регулярное выражение на основе этой строки. И регулярное выражение будет извлекать подстроки, такие как: files / file / img1.jpg, files / file / img2.jpg и так далее, до конца. Как много каталогов у меня есть, я хочу, чтобы они были извлечены. Пока просто считайте, что это не массив, а просто строка. Спасибо

str =
 "["files/file/img1.jpg","files/file/img2.jpg","files/file/img3.jpg","files/file/img4.jpg","files/file/img5.jpg","files/file/img6.jpg"] ";
1
Code Tech 28 Май 2017 в 12:25

2 ответа

Лучший ответ

Используйте JSON.parse для анализа Ваша строка. Затем просто переберите массив.

var str =
 '["files/file/img1.jpg","files/file/img2.jpg","files/file/img3.jpg","files/file/img4.jpg","files/file/img5.jpg","files/file/img6.jpg"]';
 
var result = JSON.parse(str);
for(var i= 0; i< result.length;i++){
    console.log(result[i]);
}
3
Ataur Rahman Munna 28 Май 2017 в 09:32

Синтаксис немного неправильный. Так должно быть:

var str ="[\"files/file/img1.jpg\",\"files/file/img2.jpg\",\"files/file/img3.jpg\",\"files/file/img4.jpg\",\"files/file/img5.jpg\",\"files/file/img6.jpg\"] ";

Кроме того, мы можем просто использовать несколько функций манипуляции со строками Javascript для извлечения строки:

data = str.split('["')[1].split('"]')[0].replace(/"/g, "").split(',');

Теперь переменная data - это массив, в котором есть все нужные вам каталоги. Вывод выглядит примерно так:

 (6) ["files/file/img1.jpg", "files/file/img2.jpg", "files/file/img3.jpg", "files/file/img4.jpg", "files/file/img5.jpg", "files/file/img6.jpg"]

Вы можете получить каждый каталог, проиндексировав его: data [0] является первым.

0
Rijin Mk 28 Май 2017 в 09:37