flex字符串函数

来源:互联网 发布:java冒泡排序代码完整 编辑:程序博客网 时间:2024/06/05 03:47
  在使用字符串函数的时候,要用格式 字符串.字符串函数
  1. //////////////////////////////////////////////////////////////////////////////// 
  2. package org.app.utils.common 
  3.     import mx.utils.StringUtil; 
  4.     /** 
  5.      * 注意:/unnnn,表示十六进制的unicode编码; 
  6.      *      /xnn ,表示十六进制的ascii编码; 
  7.      */  
  8.     public class MyStringUtils 
  9.     { 
  10.         private static var instance:MyStringUtils; 
  11.         public static function getInstance():MyStringUtils{ 
  12.             if(instance == null){ 
  13.                 instance = new MyStringUtils(new SingletonEnforcer()); 
  14.             } 
  15.             return instance; 
  16.         } 
  17.         public function MyStringUtils(enforcer:SingletonEnforcer) 
  18.         { 
  19.             if(enforcer==null)throw new Error("This class is singletonEnforcer."); 
  20.         } 
  21.         //////////////////////////////////////////////////////////////////////// 
  22.         public static var C_EMPTY:String = "";//空 
  23.         public static var C_BLANK:String = " ";//空格 
  24.         public static var C_NEW_LINE:String = "/n";//新行 
  25.         public static var C_TAB:String = "/t";//Tab符 
  26.         public static var C_BACKSAPCE:String = "/b";//回退符 
  27.         public static var C_NEXTPAGE:String = "/f";//制表符(换页格式符) 
  28.         public static var C_RETURN:String = "/r";//回车符 
  29.         /** 用在 encodeXML(String) 和 decodeXML(String) */ 
  30.         private var translateArray:Array = [ 
  31.             [ "&""&" ],//这个要放在第一位
  32.             [ " "" "],
  33.             [ "<""<" ],
  34.             [ ">"">" ],
  35.             [ "/""""" ],
  36.             [ "'""&apos;" ],
  37.             [ """ß" ],
  38.             [ "/""""" ] 
  39.         ]; 
  40.         //////////////////////////////////////////////////////////////////////// 
  41.         /** 
  42.          * 把xml里面的特殊字符转换成替代字符 
  43.          */  
  44.         public function encodeXML(text:String):String{ 
  45.             var s:String = text; 
  46.             for (var i:int = 0; i < translateArray.length; i++) { 
  47.                 s = this.replaceAll(s, translateArray[i][0], translateArray[i][1]); 
  48.             } 
  49.             return s; 
  50.         } 
  51.         /** 
  52.          * 把替代字符还原成xml字符 
  53.          */ 
  54.         public function decodeXML(text:String):String{ 
  55.             var s:String = text; 
  56.             for (var i:int = 0; i < translateArray.length; i++) { 
  57.                 s = this.replaceAll(s, translateArray[i][1], translateArray[i][0]); 
  58.             } 
  59.             return s; 
  60.         } 
  61.         //////////////////////////////////////////////////////////////////////// 
  62.         /** 
  63.          * 判断空 
  64.          */  
  65.         public function isEmpty(str:String):Boolean{ 
  66.             if(str == null)return true
  67.             str = this.trim(str); 
  68.             if(str == null || str.length<=0)return true
  69.             return false
  70.         } 
  71.         //////////////////////////////////////////////////////////////////////// 
  72.         /** 
  73.          * 去除两头的空格 
  74.          */  
  75.         public function trim(str:String):String{ 
  76.             return StringUtil.trim(str); 
  77.         } 
  78.         //////////////////////////////////////////////////////////////////////// 
  79.         /** 
  80.          * 取得字符串位置 
  81.          * @param String src 操作的字符串 
  82.          * @param String str 匹配的串 
  83.          * @param int index 开始的位置[默认值:0] 
  84.          *  
  85.          * @return int 返回匹配的位置,-1表示没有匹配的 
  86.          */  
  87.         public function indexOf(src:String, str:String, index:int=0):int
  88.             //if(this.isEmpty(src)||this.isEmpty(str))return -1; 
  89.             return src.indexOf(str,index); 
  90.         } 
  91.         /** 
  92.          * 取得字符串位置 
  93.          * @param String src 操作的字符串 
  94.          * @param String str 匹配的串 
  95.          * @param int index 开始的位置[默认值:字符串长度-1] 
  96.          *  
  97.          * @return int 返回匹配的位置,-1表示没有匹配的 
  98.          */  
  99.         public function lastIndexOf(src:String, str:String, index:int=-1):int
  100.             //if(this.isEmpty(src)||this.isEmpty(str))return -1; 
  101.             //if(index==-1)index=src.length-1;//默认值:字符串长度-1 
  102.             //return src.lastIndexOf(str,index); 
  103.              
  104.             if(index == -1
  105.                 return src.lastIndexOf(str); 
  106.             else 
  107.                 return src.lastIndexOf(str, index); 
  108.         } 
  109.         //////////////////////////////////////////////////////////////////////// 
  110.         /** 
  111.          * 截取字符串 
  112.          * [注] 1,substring方法中,如果参数为负数,会自动转化为0; 
  113.          *      2,substring方法中,如果结束下标小于开始下标,表示反向截取; 
  114.          * @param String src 源串 
  115.          * @param int start 起始位置 
  116.          * @param int end 结束位置 
  117.          *  
  118.          * @return String 截取的串 
  119.          */  
  120.         public function subString(src:String, index_start:int=0,  
  121.                                 index_end:int=-1):String{ 
  122.             if(index_end ==-1){ 
  123.                 return src.substring(index_start); 
  124.             }else
  125.                 return src.substring(index_start, index_end); 
  126.             } 
  127.         } 
  128.          
  129.         /** 
  130.          * 从开始下标截取一定长度的字符串 
  131.          * [注]start:-1表示倒数第一个字符;-2表示倒数第二个字符,依次类推; 
  132.          *     若指定的长度超过了剩余的长度,则取剩余的全部长度; 
  133.          * @param String src 源串 
  134.          * @param int start 开始位置 
  135.          * @param int length 截取长度 
  136.          *  
  137.          * @return String 截取的串 
  138.          */  
  139.         public function substr(src:String, start:int, length:int=-1):String{ 
  140.             if(length ==-1){ 
  141.                 return src.substr(start); 
  142.             }else
  143.                 return src.substr(start, length); 
  144.             } 
  145.         } 
  146.          
  147.         // search(正则表达式) match()?????/ 
  148.         //////////////////////////////////////////////////////////////////////// 
  149.         /** 
  150.          * 将字符串转换为数组 
  151.          * @param String src 源串 
  152.          * @param String ch 标识串 
  153.          *  
  154.          * @return Array 以标识分割的字符串数组 
  155.          */  
  156.         public function toArray(src:String, ch:String):Array{ 
  157.             return src.split(ch); 
  158.         } 
  159.         //////////////////////////////////////////////////////////////////////// 
  160.         /** 
  161.          * 替换字符串 
  162.          * @param String src 源串 
  163.          * @param String from_ch 被替换的字符 
  164.          * @param String to_ch 替换的字符 
  165.          * @param Boolean rp_all 是否替换掉全部匹配字符,true:是|false:否 
  166.          *  
  167.          * @return String 结果字符串 
  168.          */  
  169.         public function replace(src:String, from_ch:String,  
  170.                         to_ch:String, rp_all:Boolean=false):String{ 
  171.             while(src.indexOf(from_ch)!=-1){ 
  172.                 src = src.replace(from_ch, to_ch); 
  173.                 if(!rp_all)return src; 
  174.             } 
  175.             return src; 
  176.         } 
  177.         /** 
  178.          * 替换全部字符串 
  179.          * @param String src 源串 
  180.          * @param String from_ch 被替换的字符 
  181.          * @param String to_ch 替换的字符 
  182.          *  
  183.          * @return String 结果字符串 
  184.          */  
  185.         public function replaceAll(src:String, from_ch:String, 
  186.                                 to_ch:String):String{ 
  187.             return src.split(from_ch).join(to_ch); 
  188.         } 
  189.         //////////////////////////////////////////////////////////////////////// 
  190.         /** 
  191.          * 反转字符: abc==>cba 
  192.          * @param String src 源串 
  193.          *  
  194.          * @return String 反转之后的串 
  195.          */  
  196.         public function reverse(src:String):String{ 
  197.             var arr:Array = src.split(""); 
  198.             arr = arr.reverse(); 
  199.             return arr.join(""); 
  200.         } 
  201.         //////////////////////////////////////////////////////////////////////// 
  202.         /** 
  203.          * 取得某个字符的ASCII码 
  204.          */  
  205.         public function charCodeAt(src:String, index:int):int
  206.             return src.charCodeAt(index); 
  207.         } 
  208.         //////////////////////////////////////////////////////////////////////// 
  209.         /** 
  210.          * 取得某个位置的字符 
  211.          */  
  212.         public function charAt(src:String, index:int):String{ 
  213.             return src.charAt(index); 
  214.         } 
  215.         //////////////////////////////////////////////////////////////////////// 
  216.         /** 
  217.          * 大小写转换 
  218.          */  
  219.         public function toUpperCase(src:String):String{ 
  220.             return src.toUpperCase(); 
  221.         } 
  222.         public function toLowerCase(src:String):String{ 
  223.             return src.toLowerCase(); 
  224.         } 
  225.         //////////////////////////////////////////////////////////////////////// 
  226.         /** 
  227.          * 将字符转换成boolean值 
  228.          */  
  229.         public function booleanValue(src:String):Boolean{ 
  230.             var trimmed:String = this.trim(src).toLowerCase(); 
  231.             return trimmed == "true" 
  232.                 || trimmed == "t" 
  233.                 || trimmed == "yes" 
  234.                 || trimmed == "1"
  235.         } 
  236.         //////////////////////////////////////////////////////////////////////// 
  237.         /** 
  238.          * 去除头部的空格 
  239.          */  
  240.         public function trimLeadingWhitespace(src:String):String{ 
  241.             var ch:String; 
  242.             var index:int = 0
  243.             while((ch = src.charAt(index)) == C_BLANK){ 
  244.                 index++; 
  245.             } 
  246.             return this.subString(src, index); 
  247.         } 
  248.         /** 
  249.          * 去除尾部的空格 
  250.          */  
  251.         public function trimTrailingWhitespace(src:String):String{ 
  252.             var ch:String; 
  253.             var index:int = src.length-1
  254.             while((ch = src.charAt(index)) == C_BLANK){ 
  255.                 index--; 
  256.             } 
  257.             return this.subString(src, 0, index+1);//注意这里要+1 
  258.         } 
  259.         //////////////////////////////////////////////////////////////////////// 
  260.         /** 
  261.          * 是否以某个字符串开头 
  262.          */  
  263.         public function startsWith(src:String, prefix:String):Boolean{ 
  264.             if(this.isEmpty(src) || this.isEmpty(prefix)) return false
  265.             if(src.length < prefix.length) return false
  266.             return src.indexOf(prefix) == 0
  267.         } 
  268.          
  269.         /** 
  270.          * 是否以某个字符串开头[忽略大小写] 
  271.          */ 
  272.         public function startsWithIgnoreCase(src:String, prefix:String):Boolean{ 
  273.             if(this.isEmpty(src) || this.isEmpty(prefix)) return false
  274.             if(src.length < prefix.length) return false
  275.             var tmp:String = src.toLowerCase(); 
  276.             var s:String = prefix.toLowerCase(); 
  277.             return tmp.indexOf(s) == 0
  278.         } 
  279.         /** 
  280.          * 是否以某个字符串结尾 
  281.          */ 
  282.         public function endsWith(src:String, suffix:String):Boolean{ 
  283.             if(this.isEmpty(src) || this.isEmpty(suffix)) return false
  284.             if(src.length < suffix.length) return false
  285.             return src.lastIndexOf(suffix) == src.length - suffix.length; 
  286.         } 
  287.         /** 
  288.          * 是否以某个字符串结尾[忽略大小写] 
  289.          */ 
  290.         public function endsWithIgnoreCase(src:String, suffix:String):Boolean{ 
  291.             if(this.isEmpty(src) || this.isEmpty(suffix)) return false
  292.             if(src.length < suffix.length) return false
  293.             var tmp:String = src.toLowerCase(); 
  294.             var s:String = suffix.toLowerCase(); 
  295.             return tmp.lastIndexOf(s) == tmp.length - s.length; 
  296.         } 
  297.         //////////////////////////////////////////////////////////////////////// 
  298.         /** 
  299.          * 是否是数字 
  300.          */  
  301.         public function isNumeric(src:String):Boolean{ 
  302.             if (this.isEmpty(src)) return false
  303.             var regx:RegExp = /^[-+]?/d*/.?/d+(?:[eE][-+]?/d+)?$/; 
  304.             return regx.test(src); 
  305.         } 
  306.         //////////////////////////////////////////////////////////////////////// 
  307.         /** 
  308.          * 是否相同 
  309.          */  
  310.         public function equals(src:String, dest:String):Boolean{ 
  311.             return src == dest;//????? 
  312.         } 
  313.         public function equalsIgnoreCase(src:String, dest:String):Boolean{ 
  314.             var t:String = src.toLowerCase(); 
  315.             var s:String = dest.toLowerCase(); 
  316.             return s == t;//????? 
  317.         } 
  318.         //////////////////////////////////////////////////////////////////////// 
  319.         /** 
  320.          * 按照某个标识分割成数组 
  321.          */  
  322.         public function split(src:String, flg:String):Array{ 
  323.             return src.split(flg); 
  324.         } 
  325.         //////////////////////////////////////////////////////////////////////// 
  326.         /** 
  327.          * 包含 
  328.          */  
  329.         public function contains(src:String, flg:String):Boolean{ 
  330.             return src.indexOf(flg) !=- 1
  331.         } 
  332.         //////////////////////////////////////////////////////////////////////// 
  333.         /** 
  334.          * 把字符串转换成UTF-8的编码 
  335.          */  
  336.         public function encodeUTF(src:String):String{ 
  337.             return encodeURIComponent(src); 
  338.         } 
  339.         /** 
  340.          * 从UTF-8转换成原来的编码 
  341.          */  
  342.         public function decodeUTF(src:String):String{ 
  343.             return decodeURIComponent(src); 
  344.         } 
  345.         //////////////////////////////////////////////////////////////////////// 
  346.         //////////////////////////////////////////////////////////////////////// 
  347.         //////////////////////////////////////////////////////////////////////// 
  348.         //////////////////////////////////////////////////////////////////////// 
  349.     }//end class 
  350.      
  351. }//end package 
  352. /** 
  353.  * 这里使用了一个内部类 SingletonEnforcer , 
  354.  * 在类对外是无法访问的,所以巧妙的阻止了用new来创建, 
  355.  * 但还是能使用 new Singleton(null) 来创建。 
  356.  */ 
  357. class SingletonEnforcer {}
原创粉丝点击