(转)actionscript2.0 有用的字符串处理函数(as3.0用不上)

来源:互联网 发布:企业大数据应用平台 编辑:程序博客网 时间:2024/06/11 19:13

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

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

老天,这么有用的函数,不知道为什么MacroMedia要偷懒。
本文提供了

全了吧,开心吧?

一,从字符串用处说起: 字符串主要用来处理文本,也常常运用到变量名的变换中。目前最重要的运用应该是处理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() 功能:将指定字符串中某子串替换成另一个字符串,并返回新字符串。用处极广。 用法:replace (原字符串,要替换的子串,用来替换的子串)原字符串为 "Hi, a river is a story ",使用replace ("Hi, a river is a story ","a","their") ,则返回字符串“Hi, their river is their story”。常常用来替换词,屏蔽不好的用语等。代码:
function replace (str:String, replace:String, replaceWith:String):String
{
 var sb:String = new String();
  var found:Boolean = false;
 for (var i = 0; i < str.length; i++)
     {
      if(str.charAt(i) == replace.charAt(0))
         {  
          found = true;
             for(var j = 0; j < replace.length; j++)
             {
              if(!(str.charAt(i + j) == replace.charAt(j)))
                 {
                  found = false;
                     break;
                 }
   }
             if(found)
             {
              sb += replaceWith;
                 i = i + (replace.length - 1);
                 continue;
             }
  }
         sb += str.charAt(i);
 }
     return sb;
}


字符串子串删除函数remove()

原理很简单,使用replace函数,将要删除的子串替换为空字符即可。
用法 :remove ( 原字符串, 要删除的子串);

function remove(str:String, remove:String):String
{
 return replace(str, remove, "");
}


点击此处下载
使用方法:极容易上手。
在你所需要使用的代码前加上
import org.kingda.StringTool; (只需要写 一次就可以)
然后就可以通过类静态方法来调用,举个例子,很简单:
你在某一帧需要trim一个 名为 flashString的字符串,就写:
import org.kingda.StringTool;
flashString = StringTool.trim(flashString);
//这样就可以了。flashString两边的空格就都去掉了。后面可以随意使用
flashString = StringTool.replace (flashString, "aaa", "bbb")
//将flashString中所有aaa都替换成了bbb
在类文件里也一样,在首行加上
import org.kingda.StringTool;
其他用法同上。
详细使用方法和更多函数示范请到


==============================
Important:
由 黑羽翔天 (Kingda Sun)部分搜集,部分改写,和部分创作。
所有代码可供自由修改,散布
请您尊重俺的认真搜集,比较,筛选,修改,创作和n小时的测试劳动,转载时保留此信息
新的使用工具和版本请到
http://www.kingda.org/ 下载
本工具语言:
ActionScript 2.0
适用版本:
Flash MX 2004及以上
==================================
安装方法:非常简单
1.解压缩出来 StringTool.as 文件。
2.在Flash的安装目录里面的class目录下:
如果你安装的是Flash 8 简体中文版 ,路径为: C:/Programe Files/Macromedia/Flash 8/zh_cn/First Run/Classes/
如果是Flash MX2004,路径为:
C:/Programe Files/Macromedia/Flash MX2004/zh_cn/First Run/Classes/
在下面建立一个子目录org,再在org中建立子目录kingda,将StringTool.as文件放到kingda目录中。
这样就安装好了。
以Flash 8为例,安装好的StringTool.as路径为:
C:/Programe Files/Macromedia/Flash 8/zh_cn/First Run/Classes/org/kingda/StringTool.as
(注:建立org/kingda/目录不完全是为了宣传需要,是为了符合MacroMedia的命名规定,防止潜在的namespace冲突。如果你有个人需要一定要更改,可以修改类文件。如果你对AS2.0类文件和class package不了解,不建议修改。)
=======================
内含工具介绍:
replace: 使用字符串变量replaceWith,替换原字符串str中的子字符串replace
replace (str : String, replace : String, replaceWith : String) : String
ltrim: 消除左边空格
ltrim (str : String) : String
rtrim: 消除右边空格
rtrim (str : String) : String
trim: 消除两边空格
trim (str : String) : String
trimOnlySpace:仅删除字符串中所有空格
trimOnlySpace(str:String):String
trimAllSpaces:删除字符串中所有空占位符,包括空格,回车,换行,制表,后退
trimAllSpaces (str:String) : String
trimPunc:删除字符串中所有标点符号,除了单词中可能必需的单引号
trimPunc( str:String ):String
remove 删除原字符串中与字符串变量remove相同的子串
remove(str:String, remove:String):String
beginsWith: 判断是否原字符串以子字符串s开头
beginsWith(str:String, s:String):Boolean
endsWith:判断是否原字符串以子字符串s结尾
endsWith(str:String, s:String):Boolean

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/songzhen640/archive/2008/11/26/3381125.aspx

原创粉丝点击