幻鲨的天空

记下发生过的点点滴滴

« 09第一场雪as2中的WebService调用方法 »

用AS实现JS的escape函数

function Escape(strS:String):String
{
      var iCount:Number;
      var strD:String;
      var strChar:String;
      var iChar:Number;
//数字对应的字符     
      var arrHex:Array=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
      strD="";
      for(iCount=0;iCount<strS.length;iCount++)
      {
            strChar=strS.charAt(iCount);
            if(strChar==" ")
                  strD+=" ";
//不变的字符      
            else if(("A"<=strChar && strChar<="Z") || ("a"<=strChar && strChar<="z") || ("0"<=strChar && strChar<="9"))
                  strD+=strChar;
            else if (strChar=="-" || strChar=="_" || strChar=="." || strChar=="*" || strChar=="+" || strChar=="/")
                  strD+=strChar;
//小于127的应该被编码的字符           
            else if(strChar.charCodeAt(0)<0x007f)
            {
                  strD+="%";
                  iChar=strChar.charCodeAt(0);
//由于arrHex数组只有16个数字对应的字符,因此一个字节要分成两部分
//>>>为简单右移                 
                  strD+=arrHex[iChar>>>4];
                  strD+=arrHex[iChar & 0x000f];
            }
//其它的字符           
            else
            {
//两个字节要分成四个部分处理                 
                  strD+="%u";
                  iChar=strChar.charCodeAt(0);
                  strD+=arrHex[iChar>>>12];
                  strD+=arrHex[(iChar & 0x0f00)>>>8];
                  strD+=arrHex[(iChar & 0x00f0)>>>4];
                  strD+=arrHex[iChar & 0x000f];
            }
      }
      delete arrHex;
      return strD;
}
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新留言

最近发表

Powered By Z-Blog 1.6 Final Build 60816

Copyright www.erabillow.com. Some Rights Reserved.