一个在Flash里面使用的正则表达式的类(2)

2008-04-02 11:03:26来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  }elseif(!root&&thischar==")"){

  //Closingparen

  break;

  }elseif(thischar=="^"){

  //Mustbelocatedatthebeginningofstring/line

  if(qc==0||q[qc-1].t==7){

  q[qc].t=9;

  q[qc].a=1;

  q[qc].b=1;

  qc ;

  }

  continue;

  }elseif(thischar=="$"){

  //Mustbelocatedattheendofstring/line

  if(root){

  atEnd=true;

  }

  continue;

  }elseif(thischar=="["){

  //Thisisacharacterset

  i ;

  if(nextchar=="^"){

  q[qc].t=2;

  i ;

  }else{

  q[qc].t=1;

  }

  thischar="";

  range=false;

  while(i<l&&(s=substring(re,1 i ,1))!="]"){

  if(range){

  //Previouscharwas"-",socreatearange

  if(s=="\\"){

  }

  cb=s=="\\"?(s=="b"?chr(8):substring(re,1 i ,1)):s;

  ca=ord(substring(thischar,length(thischar),1)) 1;

  while(cb>=(s=chr(ca ))){

  thischar =s;

  }

  range=false;

  }else{

  if(s=="-"&&length(thischar)>0){

  //Characterrangeisbeingdefined

  range=true;

  }else{

  if(s=="\\"){

  //Predefinedcharsetmayfollow

  s=substring(re,1 i ,1);

  if(s=="d"){

  thischar ="0123456789";

  }elseif(s=="D"){

  thischar =invStr("0123456789");

  }elseif(s=="s"){

  thischar ="\f\n\r\t\v";

  }elseif(s=="S"){

  thischar =invStr("\f\n\r\t\v");

  }elseif(s=="w"){

  thischar ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";

  }elseif(s=="W"){

  thischar =invStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_");

  }elseif(s=="b"){

  thischar =chr(8);

  }elseif(s=="\\"){

  thischar =s;

  }

  }else{

  thischar =s;

  }

  }

  }

  }

  if(range)thischar ="-";

  i--;

  varnextchar=substring(re,i 2,1);

  }elseif(thischar=="|"){

  //ORsection

  if(atEnd){

  q[qc].t=10;

  q[qc].a=1;

  q[qc].b=1;

  qc ;

  q[qc]=newObject();

  atEnd=false;

  }

  q[qc].t=7;

  q[qc].a=1;

  q[qc].b=1;

  qc ;

  continue;

  }elseif(thischar=="."){

  q[qc].t=2;

  thischar="\n";

  }elseif(thischar=="*"||thischar=="?"||thischar==" "){

  continue;

  }

  }else{

  if(thischar>="1"&&thischar<="9"){

  q[qc].t=4;

  }elseif(thischar=="b"){

  q[qc].t=1;

  thischar="--wb--";

  }elseif(thischar=="B"){

  q[qc].t=2;

  thischar="--wb--";

  }elseif(thischar=="d"){

  q[qc].t=1;

  thischar="0123456789";

  }elseif(thischar=="D"){

  q[qc].t=2;

  thischar="0123456789";

  }elseif(thischar=="s"){

  q[qc].t=1;

  thischar="\f\n\r\t\v";

  }elseif(thischar=="S"){

  q[qc].t=2;

  thischar="\f\n\r\t\v";

  }elseif(thischar=="w"){

  q[qc].t=1;

  thischar="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";

  }elseif(thischar=="W"){

  q[qc].t=2;

  thischar="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";

  }

  }

  //Countingmetacharacters

  if(nextchar=="*"){

  q[qc].s=thischar;

  qc ;

  i ;

  }elseif(nextchar=="?"){

  q[qc].s=thischar;

  q[qc].b=1;

  qc ;

  i ;

  }elseif(nextchar==" "){

  q[qc].s=thischar;

  q[qc].a=1;

  qc ;

  i ;

  }elseif(nextchar=="{"){

  varcomma=false;

  varrangeA=0;

  range="";

  i ;

  while(i 1<l&&(s=substring(re,2 i ,1))!="}"){

  if(!comma&&s==","){

  comma=true;

  rangeA=Number(range);

  rangeA=Math.floor(isNaN(rangeA)?0:rangeA);

  if(rangeA<0){

  rangeA=0;

  }

  range="";

  }else{

  range =s;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash绘画教程:麻麻原绘里依的贴网秘籍

下一篇: ActionScript入门学习-MovieClip的控制