2009-02-17 54 views

回答

0

哇,認真嗎?你正在使用正則表達式從字符串的末尾移除一個連續的字符序列?真?我不知道Actionscript/Flex,但這不是要走的路。快速谷歌後,我發現一個solution這可能會或可能不會更有效。

+0

它總是有趣的使用東西的東西他們從來沒有註定要與使用。 – dirkgently 2009-02-17 12:59:18

+0

在Firefox中超過100,000次迭代的客戶端JavaScript中,正則表達式所用的時間比您粘貼的示例(經過適當修改)少了一半時間。 – 2009-02-17 20:50:43

3
public static function ltrim(string:String):String { 
    return string.replace(/^\s+/,""); 
} 

警告:未經測試!查閱flex 3.0文檔here。這正是類似於你有什麼,除了我們使用不同的元字符指定我們要開始搜索空格(\s - 另一個元字符)的端部($)從一開始(^)代替。在\s之後的+告訴模式匹配以挖掘一個或多個空格。

2

而不是重新發明輪子,爲什麼不只是use the StringUtil class from Adobe's as3corelib圖書館?

出於興趣,定義的as3corelib它的裝飾功能如下:

public static function trim(input:String):String 
{ 
    return StringUtil.ltrim(StringUtil.rtrim(input)); 
} 

public static function ltrim(input:String):String 
{ 
    var size:Number = input.length; 
    for(var i:Number = 0; i < size; i++) 
    { 
     if(input.charCodeAt(i) > 32) 
     { 
      return input.substring(i); 
     } 
    } 
    return ""; 
} 

public static function rtrim(input:String):String 
{ 
    var size:Number = input.length; 
    for(var i:Number = size; i > 0; i--) 
    { 
     if(input.charCodeAt(i - 1) > 32) 
     { 
      return input.substring(0, i); 
     } 
    } 
    return ""; 
}