as3 字符处理函数
as3 字符处理函数
2011年04月22日
原地址:http://www.adobeshow.com/blog/?p=182
做项目的过程中,难免要用到一些个公共的处理类,比如 字符串 日期 格式化 数组等。本人写的一个字符串处理类,希望大家指点交流。
功能包括:
1,处理xml相关的字符,因为在跟后台java打交道时,这个问题经常遇到:把xml里面的特殊字符转换成替代字符
2,判断空
3,去除两头的空格
4,取得指定字符在串中的位置
5,截取字符串
6,从开始下标截取一定长度的字符串
7,将字符串转换为数组
8,替换字符串
9,替换全部字符串
10,反转字符: abc==>cba
11,取得某个字符的ASCII码
12,取得某个位置的字符
13,大小写转换
14,将字符转换成boolean值
15,去除头部的空格
16,去除尾部的空格
17,是否以某个字符串开头
18,是否以某个字符串开头[忽略大小写]
19,判断是否以某个字符串结尾
20,判断是否以某个字符串结尾[忽略大小写]
21,判断是否是数字
22,比较是否相同
23,按照某个标识分割成数组
24,判断是否包含
25,与UTF-8编码的相互转换
////////////////////////////////////////////////// //////////////////////////////
//
// My System
// Copyright 2008-2009 My Systems Incorporated
// All Rights Reserved.
//
// NOTICE: My System permits you to use, modify, and distribute this file
// Langversion ActionScript 3.0
// playerversion Flash 9.0
// DATE: 2008-12-04 keren
// QQ: 84129751
// MSN: [email protected]
//
////////////////////////////////////////////////// //////////////////////////////
package org.app.utils.common
{
import mx.utils.StringUtil;
/**
* 注意:\unnnn,表示十六进制的unicode编码;
* \xnn ,表示十六进制的ascii编码;
*/
public class MyStringUtils
{
private static var instance:MyStringUtils;
public static function getInstance():MyStringUtils{
if(instance == null){
instance = new MyStringUtils(new SingletonEnforcer());
}
return instance;
}
public function MyStringUtils(enforcer:SingletonEnforcer)
{
if(enforcer==null)throw new Error("This class is singletonEnforcer.");
}
////////////////////////////////////////////////// //////////////////////
public static var C_EMPTY:String = "";//空
public static var C_BLANK:String = " ";//空格
public static var C_NEW_LINE:String = "\n";//新行
public static var C_TAB:String = "\t";//Tab符
public static var C_BACKSAPCE:String = "\b";//回退符
public static var C_NEXTPAGE:String = "\f";//制表符(换页格式符)
public static var C_RETURN:String = "\r";//回车符
/** 用在 encodeXML(String) 和 decodeXML(String) */
private var translateArray:Array = [
[ "&", "&" ],//这个要放在第一位
[ " ", "??"],
[ "", ">" ],
[ "\"", """ ],
[ "'", "'" ],
[ "", "??" ],
[ "\"", """ ]
];
////////////////////////////////////////////////// //////////////////////
/**
* 把xml里面的特殊字符转换成替代字符
*/
public function encodeXML(text:String):String{
var s:String = text;
for (var i:int = 0; i 正则表达式) match()?????/
////////////////////////////////////////////////// //////////////////////
/**
* 将字符串转换为数组
* @param String src 源串
* @param String ch 标识串
*
* @return Array 以标识分割的字符串数组
*/
public function toArray(src:String, ch:String):Array{
return src.split(ch);
}
////////////////////////////////////////////////// //////////////////////
/**
* 替换字符串
* @param String src 源串
* @param String from_ch 被替换的字符
* @param String to_ch 替换的字符
* @param Boolean rp_all 是否替换掉全部匹配字符,true:是|false:否
*
* @return String 结果字符串
*/
public function replace(src:String, from_ch:String,
to_ch:String, rp_all:Boolean=false):String{
while(src.indexOf(from_ch)!=-1){
src = src.replace(from_ch, to_ch);
if(!rp_all)return src;
}
return src;
}
/**
* 替换全部字符串
* @param String src 源串
* @param String from_ch 被替换的字符
* @param String to_ch 替换的字符
*
* @return String 结果字符串
*/
public function replaceAll(src:String, from_ch:String,
to_ch:String):String{
return src.split(from_ch).join(to_ch);
}
////////////////////////////////////////////////// //////////////////////
/**
* 反转字符: abc==>cba
* @param String src 源串
*
* @return String 反转之后的串
*/
public function reverse(src:String):String{
var arr:Array = src.split("");
arr = arr.reverse();
return arr.join("");
}
////////////////////////////////////////////////// //////////////////////
/**
* 取得某个字符的ASCII码
*/
public function charCodeAt(src:String, index:int):int{
return src.charCodeAt(index);
}
////////////////////////////////////////////////// //////////////////////
/**
* 取得某个位置的字符
*/
public function charAt(src:String, index:int):String{
return src.charAt(index);
}
////////////////////////////////////////////////// //////////////////////
/**
* 大小写转换
*/
public function toUpperCase(src:String):String{
return src.toUpperCase();
}
public function toLowerCase(src:String):String{
return src.toLowerCase();
}
////////////////////////////////////////////////// //////////////////////
/**
* 将字符转换成boolean值
*/
public function booleanValue(src:String):Boolean{
var trimmed:String = this.trim(src).toLowerCase();
return trimmed == "true"
|| trimmed == "t"
|| trimmed == "yes"
|| trimmed == "1″;
}
////////////////////////////////////////////////// //////////////////////
/**
* 去除头部的空格
*/
public function trimLeadingWhitespace(src:String):String{
var ch:String;
var index:int = 0;
while((ch = src.charAt(index)) == C_BLANK){
index++;
}
return this.subString(src, index);
}
/**
* 去除尾部的空格
*/
public function trimTrailingWhitespace(src:String):String{
var ch:String;
var index:int = src.length-1;
while((ch = src.charAt(index)) == C_BLANK){
index ;
}
return this.subString(src, 0, index+1);//注意这里要+1
}
////////////////////////////////////////////////// //////////////////////
/**
* 是否以某个字符串开头
*/
public function startsWith(src:String, prefix:String):Boolean{
if(this.isEmpty(src) || this.isEmpty(prefix)) return false;
if(src.length < prefix.length) return false;
return src.indexOf(prefix) == 0;
}
/**
* 是否以某个字符串开头[忽略大小写]
*/
public function startsWithIgnoreCase(src:String, prefix:String):Boolean{
if(this.isEmpty(src) || this.isEmpty(prefix)) return false;
if(src.length < prefix.length) return false;
var tmp:String = src.toLowerCase();
var s:String = prefix.toLowerCase();
return tmp.indexOf(s) == 0;
}
/**
* 是否以某个字符串结尾
*/
public function endsWith(src:String, suffix:String):Boolean{
if(this.isEmpty(src) || this.isEmpty(suffix)) return false;
if(src.length < suffix.length) return false;
return src.lastIndexOf(suffix) == src.length suffix.length;
}
/**
* 是否以某个字符串结尾[忽略大小写]
*/
public function endsWithIgnoreCase(src:String, suffix:String):Boolean{
if(this.isEmpty(src) || this.isEmpty(suffix)) return false;
if(src.length < suffix.length) return false;
var tmp:String = src.toLowerCase();
var s:String = suffix.toLowerCase();
return tmp.lastIndexOf(s) == tmp.length s.length;
}
////////////////////////////////////////////////// //////////////////////
/**
* 是否是数字
*/
public function isNumeric(src:String):Boolean{
if (this.isEmpty(src)) return false;
var regx:RegExp = /^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/;
return regx.test(src);
}
////////////////////////////////////////////////// //////////////////////
/**
* 是否相同
*/
public function equals(src:String, dest:String):Boolean{
return src == dest;//?????
}
public function equalsIgnoreCase(src:String, dest:String):Boolean{
var t:String = src.toLowerCase();
var s:String = dest.toLowerCase();
return s == t;//?????
}
////////////////////////////////////////////////// //////////////////////
/**
* 按照某个标识分割成数组
*/
public function split(src:String, flg:String):Array{
return src.split(flg);
}
////////////////////////////////////////////////// //////////////////////
/**
* 包含
*/
public function contains(src:String, flg:String):Boolean{
return src.indexOf(flg) !=- 1;
}
////////////////////////////////////////////////// //////////////////////
/**
* 把字符串转换成UTF-8的编码
*/
public function encodeUTF(src:String):String{
return encodeURIComponent(src);
}
/**
* 从UTF-8转换成原来的编码
*/
public function decodeUTF(src:String):String{
return decodeURIComponent(src);
}
////////////////////////////////////////////////// //////////////////////
////////////////////////////////////////////////// //////////////////////
////////////////////////////////////////////////// //////////////////////
////////////////////////////////////////////////// //////////////////////
}//end class
}//end package
/**
* 这里使用了一个内部类 SingletonEnforcer ,
* 在类对外是无法访问的,所以巧妙的阻止了用new来创建,
* 但还是能使用 new Singleton(null) 来创建。
*/
class SingletonEnforcer {}
猜你喜欢
转载自ocw356og.iteye.com/blog/1361812
今日推荐
周排行