使用 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】:您是否查看了 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】:您应该能够使用正则表达式,例如:
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