Как создать reg exp для разбора такого URL? - PullRequest
0 голосов
/ 19 февраля 2011

Итак, у нас есть http://127.0.0.1:4773/robot10382.flv?action=read, нам нужно выбраться из него protocol, ip / adress, порт, фактический url (robot10382.flv здесь) и actions (action = read here) какразобрать все это в строковые переменные в одном регистре exp?

Ответы [ 3 ]

3 голосов
/ 19 февраля 2011

Я удивлен, что AS3 не включает в себя надлежащие средства парсинга URL.Проще говоря, нелегко безопасно проанализировать URL с помощью RE. Вот пример того, как это сделать.

2 голосов
/ 19 февраля 2011

/(\w+)\:\/\/(\d+\.\d+\.\d+\.\d+)\:(\d+)\/(\w+)\?(.+)/: $ 1 - протокол, $ 2 - ip, $ 3 - порт, $ 4 - фактический URL, $ 5 - действия

есть и другой способ:
протокол: url.split('://')[0]
ip / имя домена: url.split('://')[1].split(':')[0] (или если порт не указан - url.split('://')[1].split('/)[0]
порт: url.split('://')[1].split(':')[1].split('/')[0]
Фактический URL: url.split('?')[0].split('/').reverse()[0]
действия: url.split('?')[1].split('&')/*the most possible separator imho*/ элементы этого массива также могут быть объединены ('=') для разделения имен и значений переменных.
я знаю, что есть мнение, что splice не следует использовать, но я думаю, что это просто прекрасно, когда используется правильно.

0 голосов
/ 25 января 2013

Иногда при передаче пути к файлу в SWF вы хотите выполнить проверку FileExistance перед передачей файла в класс AS3. Для этого вы хотите узнать, является ли URI файлом, URL-адресом http или любым другим URI с определенным протоколом (моникером). Следующий код сообщит вам, имеете ли вы дело с локальным полным или относительным путем.

http://younsi.blogspot.com/2009/08/as3-uri-parser-and-code-sequence-to.html

...