AS3 проблема расщепленной строки - PullRequest
0 голосов
/ 01 марта 2011

Я не очень знаком с AS3, но я пытаюсь разбить строку, используя: root.loaderInfo.loaderURL.Это прекрасно работает, он возвращает мне URL, теперь я пытаюсь разделить его ниже, это пример URL:

http://cw-pdevprt-05.tm-gnet.com:10040/wps/myportal/Ad_Sales_Test/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gzQ28zD0sTQ0t3DwtzA89g_yATTxM_QwMTI_1wkA6zeGd3Rw8Tcx8DAwsXNwsDIydTM89AAxcDA09TiLwBDuBooO_nkZ-bql-QnZ3m6KioCAD3_3C4/dl3/d3/L2dBISEvZ0FBIS9nQSEh/

Длинный и раздутый Я знаю, но у меня нет никакого контроля над этим в любом случае после разделения строкиЯ просто пытаюсь остаться с:

cw-pdevprt-05.tm-gnet.com:10040

Я могу удалить https: //, но не могу удалить деталь, начинающуюся с "/", я использовал следующий код:

var urlLocation:String = "http://cw-pdevprt-05.tm-gnet.com:10040/wps/myportal/Ad_Sales_Test/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gzQ28zD0sTQ0t3DwtzA89g_yATTxM_QwMTI_1wkA6zeGd3Rw8Tcx8DAwsXNwsDIydTM89AAxcDA09TiLwBDuBooO_nkZ-bql-QnZ3m6KioCAD3_3C4/dl3/d3/L2dBISEvZ0FBIS9nQSEh/";
var urlArray:Array = urlLocation.split("http://");
var urlSecond:String = urlArray;
var secondArray = urlSecond.split("/");

Я пробовал описанное выше, но при попытке разбить вторую часть всегда происходит сбой. Может ли кто-нибудь помочь мне получить правильный результат?

Заранее спасибо

Ответы [ 4 ]

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

вы можете попробовать с этим кодом (регулярное выражение):

var domain:String = urlLocation.replace(/^https?:\/\/([^\/]+).*$/i, '$1');
1 голос
/ 01 марта 2011
url = url.substr( 7 ); // removes the "http://" - use 8 if it's "https://"
url = url.substring( 0, url.indexOf( "/" ) ); // url is now "cw-pdevprt-05.tm-gnet.com:10040"
0 голосов
/ 02 марта 2011

Класс Flex URLUtil сделает это простым для вас.

var servername:String = URLUtil.getServerName(urlLocation);

Вам не нужно использовать всю среду Flex, чтобы использовать URLUtil, вы можете скопировать класс и переместить его в каталог src.

http://dl.dropbox.com/u/672147/URLUtil.as

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

Я полагаю, это потому, что вы пытаетесь поместить массив в строку, это то, чем является строка, но у вас есть массив строк, где в качестве первого используется массив символов.В любом случае, я сомневаюсь, что компилятору это понравится.

Тем не менее, я не понимаю, почему вы делаете все эти шаги, вы должны быть в состоянии сделать все это с одной (или двумя) строками кода (не уверен на 100%, если следующее будет работать в ASвот почему):

 var urlGet:String = urlLocation.split("/")[x]; //Not sure on all the details of .split() in AS. So "x" could be anything from 1-3 depending on whether it initializes are zero, and whether or not it will 'split at "//" to form an empty space in the array, or just skip over it. I imagine (hope) it would create an empty, but I don't want to say for certain

Если вышеупомянутое не работает, чем ...

 var urlGet:Array = urlLocation.split("/")
 var urlGet2:String = urlGet[x]  //This is x for similar reasons listed above. 

Надеюсь, что это поможет

Редактировать: Просто уточнить,

  var urlGet:String = urlLocation.split("/")[x]

Говорит ActionScript разделить строку, а затем установить urlGet равным x-му элементу в созданном массиве.Это допустимый код в Python, но я не уверен, что он будет работать здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...