webForumDet fria alternativet

Problem med RegExp/Replace

4 svar · 167 visningar · startad av roxpace

roxpaceMedlem sedan juli 200174 inlägg
#1

Jag vill kunna göra en

variabel.replace(new RegExp("<A NAME=\"kalle\" HREF=\"*\">*</A>","gi"), "ny text och ingen tag");

Där jag har skrivit * ska du det kunna vara vilken text eller tecken som helst (som # eller/) och det på två ställen, jag har provat på många sätt men inte lyckats få till det på ett bra sätt ännu.

Någon som har ett bra tips ? Tack på förhand :)

Mvh
/Roberth

JojoxxMedlem sedan juni 20004 306 inlägg
#2

Typ;

variabel='blaj <A NAME="kalle" HREF="foo">bar</A> blaj';
variabel=variabel.replace(/<A NAME=\"kalle\" HREF=\"(.+)\">(.+)<\/A>/gi, "$1 $2"); 
alert(variabel);
roxpaceMedlem sedan juli 200174 inlägg
#3

Tack för tipset, men...

Bra tips, men det verkar som den ersätter för mycket på sidan och inte bara "inom" den taggen.

Någon idé om varför ?

Mvh
/Roberth

dectgapMedlem sedan sep. 20021 542 inlägg
#4

Om du vet att det bara är ren text mellan <a>-taggarna kan du ändra följande:

variabel=variabel.replace(/<A NAME=\"kalle\" HREF=\"([^\"]+)\">([^<]+)<\/A>/gi, "$1 $2");

Huruvida det kommer att fungera eller inte vet jag inte, men det är klart värt ett test.
Det här med greedy och un-greedy har jag fortfarande inte riktigt förstått mig på.

roxpaceMedlem sedan juli 200174 inlägg
#5

Ganska bra

Det var bättre, men den ska även acceptera tecken som % & ? / \ plus att den ska klara av linebreaks ( \n ) och även mjuka sådana, och sluta ersättandet när den ser sluttecknena som är angiva som > eller "> osv :)

Mvh
/Roberth

Genererad på 493 ms · cache AV · v20260730165559-full.f96bc7eb