Avatar billede montago Praktikant
11. januar 2005 - 10:19 Der er 3 kommentarer og
1 løsning

RegExp - kun mellem Gåseøjne og Plinger

Hejsa... Jeg vil gerne replace

"asdsd"
  med
<font class=Green>asdsd</font>

hvordan finder jeg dobbeltstående Gåseøjne (efter hinanden med tekst imellem) og Plinger for dens sags skyld ???



Script__________________________________________________

<html>
<head>
<script>
function func()
{
    var text = document.getElementById('txt_1').value;
    //Remove scripts
    var text = text.replace(new RegExp('<','gi'),'&lt;');
    var text = text.replace(new RegExp('>','gi'),'&gt;');
 
    //Blue syntax
    var Conv_BlueStrong = 'For,Each,If,Then,Else,Elseif,End,Do,Set,Nothing,MoveNext,MoveLast,MoveFirst,MovePrevious,Step,While,To,Loop,Exit,With,Response,Request,Not,Server,In,True,False'
    var Arr_BlueStrong = Conv_BlueStrong.split(',');
    for(i=0;i<Arr_BlueStrong.length;i++)
    {
        var text = text.replace(new RegExp(Arr_BlueStrong[i],'gi'),'<font class=BlueStrong>'+Arr_BlueStrong[i]+'</font>');
    }
 
    var Conv_DarkStrong = 'var,int,boolean,string,char'
    var Arr_DarkStrong = Conv_DarkStrong.split(',');
    for(i=0;i<Arr_DarkStrong.length;i++)
    {
        var text = text.replace(new RegExp(Arr_DarkStrong[i],'gi'),'<font class=DarkStrong>'+Arr_DarkStrong[i]+'</font>');
    }
 
    var Conv_RedStrong = 'Write,CreateObject,Buffer,MapPath,ServerVariables,EOF,BOF,Querystring,Form,ScriptTimeout'
    var Arr_RedStrong = Conv_RedStrong.split(',');
    for(i=0;i<Arr_RedStrong.length;i++)
    {
        var text = text.replace(new RegExp(Arr_RedStrong[i],'gi'),'<font class=RedStrong>'+Arr_RedStrong[i]+'</font>');
    }
    var text = text.replace(new RegExp('\n','gi'),'<br>'); 
     
    document.getElementById('txt_2').innerHTML = text;
}
</script>
<style>
.BlueStrong{
    color:#000099;
    font-weight:bold;
}
.DarkStrong{
    color:#006600;
    font-weight:bold;
}
.RedStrong{
    color:#770000;
    font-weight:bold;
}
body,td,th {
    font-family:Georgia;
    font-size: 9pt;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>
<form onKeyUp="func();">
    <TEXTAREA name="txt_1" rows="4" cols="100"></TEXTAREA><br>
    <p id=txt_2></p>
 
    <object classid="{3b7c8863-d78f-101b-b9b5-04021c009402}" classid="">
    <param name="ClientHeight" value="500">
    </object>
</form>
</body>
</html>
Avatar billede olebole Juniormester
11. januar 2005 - 15:22 #1
<ole>

Det er lidt noget skidt, du er ved at lave  :)

Hvis der f.eks. i teksten står:
  For Each I To 100
    Bla = MyFunction("The man said to the pig: While you oink - I'll sing.")
    MsgBox Bla, vbCritical, "Det var vist ikke meningen"
  Next I
... hvad mon så der sker med ordene 'to' og 'While'? Hvad mon der vil ske, hvis du også skifter gåseøjnene ud?

Derudover er det vildt overkill at skifte ud med RegExp i eksempler, du viser her. De kan alle klares med en alm. replace - og dermed virke mange gange hurtigere ... husk: RegExp er absolut ikke nogen 'hurtigløber'  ;o)

Sidst, men ikke mindst: Hvorfor bruge font-tags? De gled ud af HTML for snart seks år siden. Mon ikke det ville være bedre at bruge spans?

Det er en del vanskeligere end som så, at lave syntax-highlighting  ;o)

/mvh
</bole>
Avatar billede montago Praktikant
10. august 2007 - 11:55 #2
Avatar billede olebole Juniormester
10. august 2007 - 20:30 #3
Ja, det er en del vanskeligere end som så, at lave syntax-highlighting  ;o)

Den kaster jo fejl fra sig, som var den betalt for det! Den virker ikke i IE6 eller Opera. Den virker i Firefox - men den kaster fejl i alle tre. Er det godt nok?
Avatar billede olebole Juniormester
10. august 2007 - 21:08 #4
Jeg får bunker af fejl på hans site, men den downloadede kode virker ... et kik i hans kildekode forklarer nu meget  =8-O
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester