2011-03-01 120 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