Avatar billede henrywood Nybegynder
11. juni 2002 - 03:04 Der er 7 kommentarer og
2 løsninger

Hvorfor virker dette regular expression ikke ???

Hvorfor virker dette ikke ????

<script language="javascript1.2">

// HTML ER INPUT STRENG
//
// NEDENSTÅENDE SKAL ERSTATTE ALLE FOREKOMSTER AF <//xx//> i html VARIABLE med replacestr
//
// TAGFORMAT: <//TAG//>
//
// OUTPUT: <IMG SRC="TAG.GIF"><!--TAG-->

var html = "<//TAG//> <BR><HR>fdsgsdgsdghsdgh<//TAG2//>sgsdf<BR>";
var owntag = new RegExp("/<\/\/(.*)\/\/>", "gi");
var replaceStr = "<IMG SRC=\"tag.gif\"><!--" + owntag.$1 + "-->";
html.replace(owntag, replaceStr);

// html var. burde nu være:
//
// <IMG SRC="TAG.GIF"><!--TAG--> <BR><HR>fdsgsdgsdghsdgh<IMG SRC="TAG.GIF"><!--TAG2-->sgsdf<BR>

alert (html);

</script>
Avatar billede o-zone Nybegynder
11. juni 2002 - 07:48 #1
Du må som minimum skulle escape dine "/" - altså skrive "\/" istedet. Men jeg har lidt svært ved at gennemskue præcis hvad det er du vil have til at erstatte hvad :( ... kan du ikke prøve at forklare det lidt tydeligere?
Avatar billede jakoba Nybegynder
11. juni 2002 - 08:18 #2
nedenstående virker sådan som netscape har implementeret RegExp reglerne.
men desværre mener Ie at der er en syntaksfejl i "var owntag ..." linien

<script language="javascript1.2">

// HTML ER INPUT STRENG
//
// NEDENSTÅENDE SKAL ERSTATTE ALLE FOREKOMSTER AF <//xx//> i html VARIABLE med replacestr
//
// TAGFORMAT: <//TAG//>
//
// OUTPUT: <IMG SRC="TAG.GIF"><!--TAG-->

var html = "<//TAG//> <BR><HR>fdsgsdgsdghsdgh<//TAG2//>sgsdf<BR>";

var owntag = new RegExp("<//([^/>]+)//>", "gi");
var replaceStr = "<IMG SRC=\"tag.gif\"><!--\"$1\"-->";
                      // $1 er blot bogstaver i den der streng
var olsen = html.replace(owntag, replaceStr);
                      // olsen modtager den modificerede

// html var. burde nu være:
//
// <IMG SRC="TAG.GIF"><!--TAG--> <BR><HR>fdsgsdgsdghsdgh<IMG SRC="TAG.GIF"><!--TAG2-->sgsdf<BR>

alert (olsen);

</script>

mvh JakobA
Avatar billede jakoba Nybegynder
11. juni 2002 - 08:39 #3
der var den. IE han ikke brug  new RegExp( )  constructoren

//var owntag = new RegExp("<//([^/]+)//>", "gi");  // kun NS
var owntag = /<\/\/([^\/]+)\/\/>/gi ;  // både NS og IE
Avatar billede puppetmaster Nybegynder
11. juni 2002 - 08:44 #4
Når jeg kører ovenstående får jeg vist nedenstående i en alert-boks:
(jeg bruger IE 6.0)

<IMG SRC="tag.gif"><!--"TAG"--><BR><HR>fdsgsdgsdghsdgh<IMG SRC="tag.gif"><!--"TAG2"-->sgsdf<BR>
Avatar billede jakoba Nybegynder
11. juni 2002 - 08:46 #5
Øh...  ja, det gør jeg også :-))
Avatar billede puppetmaster Nybegynder
11. juni 2002 - 08:49 #6
Meeen, så får jeg jo IKKE vist den omtalte "syntaksfejl i "var own..." linien......
Avatar billede jakoba Nybegynder
11. juni 2002 - 08:55 #7
Min test var med IE4, så det har de så rettet.
Men  " tegn i kommentaren er ikke pr specs så det bør nok være:

<script language="javascript1.2">

// HTML ER INPUT STRENG
//
// NEDENSTÅENDE SKAL ERSTATTE ALLE FOREKOMSTER AF <//xx//> i html VARIABLE med replacestr
//
// TAGFORMAT: <//TAG//>
//
// OUTPUT: <IMG SRC="TAG.GIF"><!--TAG-->

var html = "<//TAG//> <BR><HR>fdsgsdgsdghsdgh<//TAG2//>sgsdf<BR>";

//var owntag = new RegExp("<//([^/>]+)//>", "gi");  // NS4+ og IE6, ej IE4
var owntag = /<\/\/([^\/]+)\/\/>/gi ;      // både NS4+ og IE4+
var replaceStr = "<IMG SRC=\"tag.gif\"><!--$1-->";
                      // $1 er blot bogstaver i den der streng
var olsen = html.replace(owntag, replaceStr);
                      // olsen modtager den modificerede

// html var. burde nu være:
//
// <IMG SRC="TAG.GIF"><!--TAG--> <BR><HR>fdsgsdgsdghsdgh<IMG SRC="TAG.GIF"><!--TAG2-->sgsdf<BR>

alert (olsen);

</script>
Avatar billede henrywood Nybegynder
11. juni 2002 - 10:58 #8
Tak for hjælpen gutter !

Men hvordan kommer jeg den anden vej (dvs. fra <IMG SRC="tag.gif"><!--TAG1-->dsghsfg til <//TAG1--> med et lign. reg. exp. ?)
Avatar billede jakoba Nybegynder
11. juni 2002 - 11:12 #9
mon ikke:

var owntag = /<IMG SRC=\"tag\.gif\"><!\-\-([^\/]+)\-\->/gi ;      // både NS4+ og IE4+
var replaceStr = "<//$1//>";

mvh JakobA
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