2011-03-01 117 views
0

我对AS3不是很熟悉,但我想用root.loaderInfo.loaderURL分割一个字符串。这工作得很好,现在返回我的网址我试图分裂它下面是URL的一个例子:AS3拆分字符串问题

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("/"); 

我试了一下但是当试图分裂第二部分时总是失败,谁能帮助我获得正确的结果?

在此先感谢

回答

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中的有效代码,只是不确定它是否会在这里工作。

2

你可以用这个代码(正则表达式)尝试:

var domain:String = urlLocation.replace(/^https?:\/\/([^\/]+).*$/i, '$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" 
0

Flex的类URLUtil将使这个简单的为您服务。

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

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

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