2010-05-26 39 views
15

我試圖從一個字符串的前端和末尾修剪空格。看起來像as3沒有修剪功能。任何人都知道如何做到這一點?用動作腳本修剪字符串3

+10

奇怪的是,我得到了這個頁面,而谷歌搜索;) – 2011-08-09 14:38:59

+11

我不是這個迷整個「只是谷歌」的態度,正在越來越多地發生在SO上。通過隨機博客搜索信息片段與從諸如SO這樣的編程資源獲得集體幫助是不同的 - 因此,根據許多人(而不僅僅是一個博客)的觀點,SO被設計爲如此優秀的答案浮到頂端。 – Chris 2011-11-27 22:56:53

+1

@Chris和Hendy,我也是從Google來的。 – BajaBob 2013-01-17 15:16:01

回答

1

您應該能夠使用正則表達式,像:

var pattern:RegExp = /(\t|\n|\s{2,})/g; 
trimmedString = untrimmedString.replace(pattern, ''); 
3

你有沒有檢查Adobe的文檔? http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/String.html

package { 
import flash.display.Sprite; 

public class StringExample extends Sprite { 
    public function StringExample() { 
     var companyStr:String = new String("  Company X"); 
     var productStr:String = "Product Z Basic  "; 
     var emptyStr:String = " "; 
     var strHelper:StringHelper = new StringHelper(); 

     var companyProductStr:String = companyStr + emptyStr + productStr; 
     trace("'" + companyProductStr + "'"); // '  Company X Product Z Basic  ' 

     companyProductStr = strHelper.replace(companyProductStr, "Basic", "Professional"); 
     trace("'" + companyProductStr + "'"); // '  Company X Product Z Professional  ' 

     companyProductStr = strHelper.trim(companyProductStr, emptyStr); 
     trace("'" + companyProductStr + "'"); // 'Company X Product Z Professional' 
    } 
} 

}

類的StringHelper {

public function StringHelper() { 
} 

public function replace(str:String, oldSubStr:String, newSubStr:String):String { 
    return str.split(oldSubStr).join(newSubStr); 
} 

public function trim(str:String, char:String):String { 
    return trimBack(trimFront(str, char), char); 
} 

public function trimFront(str:String, char:String):String { 
    char = stringToCharacter(char); 
    if (str.charAt(0) == char) { 
     str = trimFront(str.substring(1), char); 
    } 
    return str; 
} 

public function trimBack(str:String, char:String):String { 
    char = stringToCharacter(char); 
    if (str.charAt(str.length - 1) == char) { 
     str = trimBack(str.substring(0, str.length - 1), char); 
    } 
    return str; 
} 

public function stringToCharacter(str:String):String { 
    if (str.length == 1) { 
     return str; 
    } 
    return str.slice(0, 1); 
} 

}

更新:哦,剛纔看到ItzWarty。 -.-

6
str = str.replace(/^\s+|\s+$/g, ''); 
1

ItzWarty的解決方案不會刪除尾隨空格方法。

Amargosh的解決方案對我來說確實很完美,並且也在http://jeffchannell.com/ActionScript-3/as3-trim.html

不幸的是我沒有足夠的聲望來投票給Amargosh的解決方案。

此外,我不得不刪除雙引號所以這裏是我的裝飾:

function trim(s:String):String 
{ 
    return s.replace(/^[\s|"]+|[\s|"]+$/gs, ''); 
} 
2

試試這個

str = StringUtil.trim(str);