使用 actionscript 3 修剪字符串

Posted

技术标签:

【中文标题】使用 actionscript 3 修剪字符串【英文标题】:trimming strings with actionscript 3 【发布时间】:2011-02-23 23:52:33 【问题描述】:

我正在尝试从字符串的开头和结尾修剪空格。看起来 as3 没有修剪功能。任何人都知道如何做到这一点?

【问题讨论】:

奇怪的是,我在谷歌搜索时进入了这个页面;) 我不喜欢这种在 SO 上越来越多的“只是 google it”态度。在随机博客中搜寻信息的 sn-ps 与从诸如 SO 之类的编程资源中获得集体帮助不同 - SO 的设计使出色的答案基于许多人的意见而浮出水面,而不仅仅是一个博主。 @Chris 和 Hendy,我也是从 Google 来到这里的。 【参考方案1】:

试试这个

str = StringUtil.trim(str);

【讨论】:

【参考方案2】:

ItzWarty 的解决方案不会删除尾随空格。

Amargosh 的解决方案对我来说非常有效,并且在 http://jeffchannell.com/ActionScript-3/as3-trim.html 上也有提供。

很遗憾,我没有足够的声望来支持 Amargosh 的解决方案。

此外,我必须删除双引号,所以这是我的修剪:

function trim( s:String ):String

  return s.replace(/^[\s|"]+|[\s|"]+$/gs, '');

【讨论】:

【参考方案3】:

您在实用程序类中有一个名为 trim 的方法,名为 StringUtil => http://livedocs.adobe.com/flex/3/langref/mx/utils/StringUtil.html#trim%28%29

【讨论】:

【参考方案4】:
str = str.replace(/^\s+|\s+$/g, '');

【讨论】:

【参考方案5】:

您是否查看了 Adob​​e 的文档? 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】:

您应该能够使用正则表达式,例如:

var pattern:RegExp = /(\t|\n|\s2,)/g;  
trimmedString = untrimmedString.replace(pattern, '');  

【讨论】:

【参考方案7】:

看http://jeffchannell.com/ActionScript-3/as3-trim.html

function trim( s:String ):String

  return s.replace( /^([\s|\t|\n]+)?(.*)([\s|\t|\n]+)?$/gm, "$2" );

http://www.designscripting.com/2008/11/string-utils-in-as3/ 有大量的字符串实用函数,包括字符串修剪

【讨论】:

以上是关于使用 actionscript 3 修剪字符串的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3修剪逗号分隔字符串(例如,用户输入的逗号分隔关键字列表)

ActionScript 3 AS3 - 修剪特定宽度和高度的文本

使用 Emacs 漂亮地打印 ActionScript 3.0

修剪字符串向量

我应该学习 Actionscript 3 和 Javascript 来制作网页游戏吗? [关闭]

ActionScript 3 如何使用AS3访问查询字符串参数