November 2, 2005

Action Script 2极有用的字符串处理函数补充【黑羽翔天】 (1)

ActionScript3天地会公测中...

黑羽翔天[原创]:

第一节:常用的trim函数:消除空格函数


(未完待续,黑羽最近工作很忙,可能要延后几日补全这篇文章,写完后我会整理成一个String增强静态类工具包供大家下载)
字符串函数的用处之大,大到每个ASer都会天天碰到。尤其是现在XML横行,对字符串的处理要求更多了。
但是,我不明白,为什么MacroMedia在 AS2.0中对String (字符串)类的处理method怎么那么少?每一个网页script语言,如PHP,都会提供
ltrim //消除字符串左边空格的函数
rtrim //消除字符串左边空格的函数
trim //消除字符串两边空格的函数
replace //替换字符串中某段文字。

老天,这么有用的函数,不知道为什么MacroMedia要偷懒。
本文提供了黑羽收集的比较并精选出来的一些此类函数(有些经过黑羽改写)。也有黑羽自己编写添加的一些其他有用的函数。比如: trimAllSpace, remove, beginWith,endWith 。

全了吧,开心吧?

一,从字符串用处说起: 字符串主要用来处理文本,也常常运用到变量名的变换中。目前最重要的运用应该是处理XML文本了。例如,XML文本中常常包含着一些不必要的空格,需要去掉。这就要用到trim去空格函数。 如,替换某段文字中的骂人话为其他的字 ,就要用到字符串替换函数 replace了。 如,查找用户提交的某段文字是否与以前重复,那么用beginWith就是一个高效的好主意。 罗嗦了,这么多好处,其实没必要。每个AS开发者都知道字符串的使用几乎是日常必备的。每个初级开发者也必需要明白,要成为高手,掌握字符串处理函数是必备条件。 二,补充的字符串函数: MacroMedia只提供了基础的字符串处理函数,对trim,replace,remove等等使用非常频繁的工具函数没有提供。这是非常遗憾的。

常用的trim函数:消除占位空字符函数


用处:删除字符串左右的占位空字符(以下简称空格),比如空格,回车,换行,制表Tab等符号,并返回删除后的String。 代码:

第一组我觉得很好的trim函数,它的算法简洁明了,缺点是对全角空格不能删除.


第一个函数:ltrim() 消除字符串左边空格的函数,返回一个新的字符串
function ltrim(str:String):String
{
var size =str.length;
for(var i = 0; i < size; i++)
{
if(str.charCodeAt(i) > 32) //解释:空格,tab,回车,换行charCode小于32
{
return str.substring(i);
}
}
return "";
}

第二个函数:rtrim() 消除字符串右边空格的函数,返回一个新的字符串:
function rtrim(str:String):String
{
var size = str.length;
for(var i = size; i > 0; i--)
{
if(str.charCodeAt(i) > 32)//同上
{
return str.substring(0, i + 1);
}
}
return "";
}

第三个函数:trim() 消除字符串两边空格的函数,返回一个新的字符串:
function trim(str:String):String
{
return rtrim( ltrim(str) );
}

第二个trim函数,原型来自于blueideaBBS上兄弟的发贴,一次性搞定两边空格。


优点:比较好改写。改写:可以在其中加上你要去掉的其他字符,比如说标点,和全角空格。建议单独使用,没有收录进工具包。
function trim (str : String) : String {
var a : Number = 0;
var b : Number = 0;
for (var i = 0; i < str.length; i ++){
if (str.charAt (i) != " " && str.charAt (i) != " " && str.charAt (i) != " " &&
str.charAt (i) != "\n" && str.charAt (i) != "\r" && str.charAt (i) != "\t") {
a = i;
break;
}
}
for (var i = str.length - 1; i >= 0; i --){
if (str.charAt (i) != " " && str.charAt (i) != " " && str.charAt (i) != " " &&
str.charAt (i) != "\n" && str.charAt (i) != "\r" && str.charAt (i) != "\t") {
b = i - a + 1;
break;
}
}
var ret : String = str.substr (a, b);
return ret;
}

下一节,replace函数

广告:哈哈,现在刚好是阿里妈妈推广期哦,你是站长吗?推荐注册阿里妈妈赚广告费

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/mt/mt-tb.cgi/7

Comments (5)

alby:

function trim(str:String):String
{
var size =str.length;
for(var i = 0; i {
if(str.charCodeAt(i) > 32) {
return str.substring(i);
}
}
return "";
}
这样效率更高

挺好的。!!

odiy:

了解了

odiy:

了解了

static function removeExtraSpaces(source) {
while (source.indexOf(" ") > -1) {
source = replace(source, " ", " ");
}
return (source);
}

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"u" :
文字广告:你是站长吗?注册阿里妈妈赚广告费

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录