AS3拆分字符串问题

时间:2011-03-01 12:45:35

标签: flash actionscript-3 string

我对AS3不是很熟悉,但我正在尝试使用:root.loaderInfo.loaderURL拆分字符串。这工作正常,它返回我的网址现在我试图拆分它下面是一个网址的例子:

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 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码(regexp):

var domain:String = urlLocation.replace(/^https?:\/\/([^\/]+).*$/i, '$1');

答案 1 :(得分:1)

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"

答案 2 :(得分:0)

我相信这是因为你试图将一个数组放入一个字符串,这就是一个字符串,但你有一个字符串数组,其中第一个是字符数组。无论哪种方式,我怀疑编译器是否会喜欢它。

但是,我不明白你为什么要做所有这些步骤,你应该能够用一行(或两行)代码完成所有这些(不是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中的有效代码,只是不确定它是否可以在这里工作。

答案 3 :(得分:0)

Flex类URLUtil将使您更加简单。

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

您不必使用整个Flex框架来使用URLUtil,您可以复制该类并将其移动到您的src目录中。

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