2010-05-26 12 views
15

Estoy tratando de recortar espacios en blanco desde el frente y el final de una cadena. Parece que as3 no tiene una función de recorte. ¿Alguien sabe cómo se puede hacer?recorte de cadenas con actionscript 3

+10

Curiosamente, llegué a esta página, mientras que buscando en Google;) –

+11

No soy un fan de este toda la actitud de "solo google it" que está sucediendo cada vez más en SO. Navegar por blogs aleatorios para obtener fragmentos de información no es lo mismo que obtener la ayuda colectiva de un recurso de programación como SO - SO, diseñado para que las respuestas excelentes lleguen a la cima según las opiniones de muchos, no solo de un bloguero. – Chris

+1

@Chris y Hendy, también llegué aquí de Google. – BajaBob

Respuesta

1

Usted debe ser capaz de utilizar expresiones regulares, algo así como:

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

¿Te ha verifique la documentación de 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 clase {

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); 
} 

}

ACTUALIZACIÓN: Oh, sólo vio ItzWarty. -.-

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

solución de ItzWarty no quita espacios finales.

La solución de Amargosh funciona perfectamente para mí, y también se ofrece en http://jeffchannell.com/ActionScript-3/as3-trim.html.

Desafortunadamente no tengo suficiente reputación para votar por la solución de Amargosh.

Además tuve que quitar comillas dobles así que aquí está mi ajuste:

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

probar este

str = StringUtil.trim(str);