flash as3 удаляет все символы в строке URL перед определенным путем - PullRequest
0 голосов
/ 30 марта 2011

Я извлекаю URL из файла XML, который ведет с именем домена (http://site.com/), за которым следует путь к серии изображений (images / uploads / file.jpg).

Мне нужен относительный путь к файлам без имени домена. Ранее я просто использовал этот код:

file = myXML.project.fileURL.substring(26)

Чтобы отрубить ненужные 26 символов из строки, но, поскольку я буду переходить между локальными, промежуточными и живыми средами, мне нужно найти более динамичный способ действий - в основном избавиться от все до "images /" в URL. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

RegEx - лучший способ наверняка.

Данные испытаний, которые я использовал:

        var asdf:String = "http://site.com/images/uploads/file.jpg";
        var fdsa:String = "http://www.site.com/images/uploads/file.jpg";
        var anot:String = "ftp://asfd.werqsvxc.qewoihdsv.asuvxc.fwhfrew/images/asdf/asdf.afds";

        var myregTest:RegExp = /^(\w+:\/\/)?((\w+\.){0,999})?(\w+)?\//;

        fdsa = fdsa.replace(myregTest, " ");
        asdf = asdf.replace(myregTest, " ");
        anot = anot.replace(myregTest, " ");

Вывод для 3-х протестированных струн.

images/uploads/file.jpg
images/uploads/file.jpg
images/asdf/asdf.afds

Да, {0,999} посередине так, что он может повторять foo.bar.foo.bar.foo.bar и т. Д. Столько раз, сколько ему нужно. Есть лучший способ позволить этому зацикливаться, но я не могу вспомнить с макушки головы.

Так что это в основном ограничено 998 точками. (что абсурдно для URL, который я знаю) Есть лучший способ.

Надеюсь, это немного поможет.

Редактировать: отредактировано, чтобы убрать начальный '/', чтобы сделать его точно таким, как вы сказали, что вам нужно.

0 голосов
/ 30 марта 2011

Выполнить комбинацию split, splice, join:

var s:String = "http://test.local/images/something.jpg";

var output:String = s.split('/').splice(3).join("/");

trace(output);

split : разрывает строку по частям

сращивание : извлечениечасть массива

join : повторно присоединить части массива к новой строке

...