Javascript 小工具, StringToArray(字串转数组) By shawl.qiu

 Javascript 小工具, StringToArray(字串转数组) By shawl.qiu


说明:
 顾名思义, 这个其实嘛, 就是把一字串转为数组, 并保留字串格式...
乍看之下, 貌似很简单, 不过真正弄起来, 可不是那么回事哦...
主要应用嘛, 效率问题... 总比拼接字串强...

shawl.qiu
2007-08-22
http://blog.csdn.net/btbtd

内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String To Array - shawl.qiu template </title>
<style type="text/css">
/* <![CDATA[ */

/* ]]> */
</style>
<script type="text/javascript">
/*<![CDATA[*/
  if  ( navigator. appName == "Microsoft Internet Explorer" ) 
  {
   //最大化窗口
   self. moveTo ( - 5, - 5 )
   self. resizeTo ( screen. availWidth  + 8, screen. availHeight + 8 )
   //这个脚本定义的宽度其实比原窗口还要大那么一点.
  }
/*]]*/
</script>
</head>
<body>
<form id="MainForm">
  <p> 输入: <br />
   <textarea cols="90%" rows="10" id="InputTxa">       if ckeckfile then 
        if fReTest(listForCheck, "/b"&sFlPox&"/b") then
         for iArCkTemp=0 to uBound(tl_arCkFl)
          '--------------------------------检测恶意代码
          if inStrB(1, bnFileContent, tl_arCkFl(iArCkTemp), 1) <>0 then 
           if isArray(tl_arErrMaliceCode) then redim preserve _
            tl_arErrMaliceCode(uBound(tl_arErrMaliceCode)+1) else redim tl_arErrMaliceCode(0)
            tl_arErrMaliceCode(uBound(tl_arErrMaliceCode))=sFlNm
            bFlag=false
           exit for
          end if
         next 
        end if
       end if
 function fExtendObjASI(Obj, Set, sPrefix, iCount)
 {// shawl.qiu code : void return
  if(!Set) Set = [];
  if(!iCount) iCount = 0;
  if(!sPrefix) throw new Error("参数出错!");   
  
  Obj.Set = Set;
  Obj.Marker = sPrefix;
  Obj.Count = iCount;
 } // end function fExtendObjASI(Obj, Set, sPrefix, iCount)
 
 function fEncodeCode(Source, Obj, sPattern, sFlag)   
 {
  if(!sFlag) sFlag = "g";
  var Re = new RegExp(sPattern, sFlag);  
  
  Source[0] = Source[0]
   .replace
   (
    Re
    ,function($0, $1)
    {
     Obj.Set.push($1);
     //alert($1);
     return Obj.Marker+(Obj.Count++);
    }
   );
 } // end function fEncodeCode(Source, Obj, sPattern) </textarea>
</p> <p>
   <input type="submit" id="Submiter" value="提交" />
   <input type="reset" value="重置" />
</p>
<p>输出: <br />
  <textarea cols="90%" rows="15" id="OutputTxa"> </textarea>
</p>
<p>默认空白:
  <input type="text" id="DefaultSpaceTbx" value="2" style="width:24px;" /> 
  <select id="SpaceSle">
   <option value=" ">Space </option>
   <option value=" ">Tab </option>
  </select>
 |
  <input type="checkbox" value="checkbox" id="TrimCbx" /> 
 :Trim
 |
  <input type="checkbox" value="checkbox" id="DebugCbx" /> : Debug
</p>
</form>

<script type="text/javascript">
/*<![CDATA[*/
  var  InputTxa  =  document. getElementById ( "InputTxa" );
  var  Submiter  =  document. getElementById ( "Submiter" );
  var  OutputTxa  =  document. getElementById ( "OutputTxa" );
  var  DefaultSpaceTbx  =  document. getElementById ( "DefaultSpaceTbx" );
  var  SpaceSle  =  document. getElementById ( "SpaceSle" );
  var  TrimCbx  =  document. getElementById ( "TrimCbx" );
  var  DebugCbx  =  document. getElementById ( "DebugCbx" );
 
  Submiter. onclick  =
   function ( )
   { 
    var  TempStr  =  [ InputTxa. value ];
   
   StringToArray
    ( TempStrTrimCbx. checkedSpaceSle. valueDefaultSpaceTbx. valueDebugCbx. checked );

    OutputTxa. value  =  TempStr;
    return  false;
   };
  
  function  StringToArray ( SourcebTrimsSpaceiSpaceLenbDebug )
  { // shawl.qiu code : return string
   var  bStr  =  false;
   if ( Source. constructor == String )  Source  =  [Source ]bStr  =  true;
  
   if ( bTrim )  fStringTrim ( Sourcefalse"gm" );
   var  Debug  =  bDebug;
  
   // escape string
   var  Count  =  0;
   var  Comma  =  "";
   var  TempAr  =  [ ];
   Source [ 0 ]. replace
   (
    / ^ (. + )$ / gm,
    function ( $0$1 )
    {
     if ( Count > 0 )  Comma  =  ",";
    
     $1  =  $1. replace ( / /n/r|/r|/n / g"" );
    
     $1  =  $1. replace ( //// g, "" );
     $1  =  $1. replace ( / " / g"///"" );
        
     $1  =  [Comma"/""$1"//n/"" ]. join ( "" );
    
     TempAr. push ( $1 );
    
     Count ++;
     return  $1;
    }
   );
  
   Source [ 0 ]  =  TempAr. join ( "/n" );
  
   // fix close script
   Source [ 0 ]  =  Source [ 0 ]. replace ( / <//script> / gi"<///script>" );
  
   Source [ 0 ]  =  ["/[/n"Source"/n/].join('');" ]. join ( "" );
  
   var  sUnshift  =  fStringSpace ( sSpaceparseInt ( iSpaceLen ) );
   fUnshiftString ( SourcesUnshift );
  
   if ( Debug )  fListCharcode ( Source );
   
   if ( bStr )  return  Source [ 0 ];
  }  // end function StringToArray(Source, bTrim, sSpace, iSpaceLen)
 
  function  fListCharcode ( Source )
  { // shawl.qiu code : return string
   var  bStr  =  false;
   if ( Source. constructor == String )  Source  =  [Source ]bStr  =  true;

   var  Len  =  Source [ 0 ]. length;
   var  Ar  =  [ ];
   var  TempAr  =  [ ];
  
   for ( var  i =0;  i <Len;  i ++ )
   {
    var  CurChar  =  Source [ 0 ]. charAt ( i );
    //alert(CurChar) 
    Ar. push ( CurChar );
    TempAr. push ( CurChar. charCodeAt ( ) );
   
    if ( CurChar. charCodeAt ( ) == 10 || i === Len - 1 )
    {
     Ar. push ( TempAr. join ( "," ) );
     Ar. push ( "/n" );
     TempAr  =  [ ];
    }
   }
  
   Source [ 0 ]  =  Ar. join ( "" );    
   if ( bStr )  return  Source [ 0 ];
  }  // end function fListCharcode(Source)
  
  function  fStringSpace ( sStriTime )
  {
   var  nLen = arguments. length;
   if ( nLen === 0 )
   {
    sStr = '&nbsp;'
    iTime = 2;
   }
  
   if ( nLen == 1 )
   {
    sStr += '&nbsp;';
    iTime = 2;
   }
   return  new  Array ( iTime + 1 ). join ( sStr );
  }  // end function fStringSpace
  
  function  fUnshiftString ( SourcesForUnshift )
  { // shawl.qiu code : return string
   var  bString  =  false;
   if ( Source. constructor == String )
   {
    Source  =  [Source ];
    bString  =  true;
   }
   Source [ 0 ]  =  Source [ 0 ]
   . replace
    (
     / ^ ( [/s/ S ] ) /gm
    , sForUnshift + "$1"
    );
   
   if ( bString )
   {
    return  Source [ 0 ];
   } 
  }  // end function fUnshiftString(Source, sForUnshift)
  
  function  fStringTrim ( SourcebLinesFlag )
  { // shawl.qiu code : return string
   if (! sFlag )  sFlag  =  "g";
   var  bString  =  false;
   var  Re  =  null;
  
   if ( Source. constructor == String )
   {
    Source  =  [Source ];
    bString  =  true;
   }
  
   if (! bLine )
   {
    if ( / m / i. test ( sFlag ) )  Re  =  new  RegExp ( "^[^//r//n//S]+|[^//r//n//S]+$"sFlag );
    else  Re  =  new  RegExp ( "^//s+|//s+$"sFlag );   
    Source [ 0 ]  =  Source [ 0 ]. replace ( Re'' );
   }
   else
   {
    Re  =  new  RegExp ( "^[^//n//S]*?//n|//s+$"sFlag );
    Source [ 0 ]  =  Source [ 0 ]. replace ( Re'' );
   }

   if ( bString )  return  Source [ 0 ];
  }  // end function fStringTrim(Source)  
/*]]*/
</script>
</body>
</html>
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值