webForumDet fria alternativet

Får inte vara högre än 400.

ASP

5 svar · 258 visningar · startad av Frezze

Medlem sedan apr. 2004114 inlägg
Frågan#1

Hejsan.
Försöker göra en typ <div> ruta, där man kan skriva text i till användaren. Men, man ska även kunna ändra bakgrundsfärg, ramfärg och hur bredd den ska vara.

Jag har kommit så långt som till bredden, och det jag fått ihop just nu är så det bara kan innehålla upp till 3 tal, och det är så jag vill ha det, men jag vill även att det ska vara en gränns på hur högt värdet är, att man får ha minst 1, och högst 400.
Men jag vet inte riktigt hur jag ska gå till väga.

Nedan är den kod jag har just nu, som fungerar.

<%
Function nCode(text)
With New RegExp
   .Global=True
   .IgnoreCase=True
   text = server.HTMLEncode(text)
   text = Replace(text,vbCrLf,"<br>")
   .Pattern="\&lt; *cube *color *=&quot;([#a-zA-Z_0-9]*?)&quot; *bcolor *=&quot;([#a-zA-Z_0-9]*?)&quot; *width *=&quot;(\d{1,3})\&quot;&gt;(.*?)&lt;/cube&gt;"
   text = .Replace(text,"<div class=""cube"" style=""background-color:$1; border:1px solid $2; width:$3"">$4</div>")
End With

nCode = text
End Function
%>

Edit:
Såg nu, och säger det till er. Notera att " vid ([#a-zA-Z_0-9]*?) etc. är & quot; (utan mellanslag mellan & och q).
Men wbf tycks flumma med det...

Medlem sedan apr. 2004114 inlägg
#2

Ingen som kan leda mig på rätt spår i alla fall? Känns som att det i alla fall borde finnas någon som kunde säga till mig vad jag borde göra. Inte ge mig en kod som ska fixa det åt mig.. >.>

Medlem sedan juli 20011 084 inlägg
#3

vet inte om det är den bästa lösningen men du skulle ju kunna göra så här(hur det funkar med din nuvarande kod vet jag inte heller :OO :e)

width='[b]([0-3]{1}\d{0,2})[/b]'|width='[b](400)[/b]'|width='[b](\d{0,2})[/b]'
Medlem sedan apr. 2004114 inlägg
#4

mozilla skrev:

vet inte om det är den bästa lösningen men du skulle ju kunna göra så här(hur det funkar med din nuvarande kod vet jag inte heller :OO :e)

width='[b]([0-3]{1}\d{0,2})[/b]'|width='[b](400)[/b]'|width='[b](\d{0,2})[/b]'

:o Det där var en RegExp. kod som jag aldrig sett. Så jag tog en vild gissning och byggde om lite:

.Pattern="\&lt; *cube *color *=&quot;([#a-zA-Z_0-9]*?)&quot; *bcolor *=&quot;([#a-zA-Z_0-9]*?)&quot; *width *=&quot;([0-3]{1}\d{0,2})&quot;|*width *=&quot;(400)&quot;|*width *=&quot;(\d{0,2})&quot;&gt;(.*?)&lt;/cube&gt;"

Men jag får felmeddelandet Oväntad kvantifierare på raden under då.

text = .Replace(text,"<div class=""cube"" style=""background-color:$1;border:1px solid $2;width:$3"">$4</div>")

Gaahh.. jag gillar inte när man känner sig som en äkta n00b, om ett år kommer jag väll att virra med huvudet åt denna tråden. Men i vilket fall som helst, är jag väldigt tacksam för hjälpen jag får!

Medlem sedan juli 20011 084 inlägg
#5

Jo, misstänkt nästan att det inte skulle fungera så bra från början ;)

Du kan inte göra en kontroll efteråt ifall det finns något width="" som är över 400, och i så fall byta ut dem? Alltså ditt RegExp först, och efter det söker du igen efter width som är större än 400 och ändrar det till max 400?

Medlem sedan apr. 2004114 inlägg
#6

mozilla skrev:

Jo, misstänkt nästan att det inte skulle fungera så bra från början ;)

Du kan inte göra en kontroll efteråt ifall det finns något width="" som är över 400, och i så fall byta ut dem? Alltså ditt RegExp först, och efter det söker du igen efter width som är större än 400 och ändrar det till max 400?

Jo, det går nog att försöka söka igenom på det sättet, med objMatches, men den funktionen används redan till en kod som söker igenom efter länkar och kortar ner dem, så dom inte "drar ut" table'n.
Men å andra sidan, om jag skulle skippa den koden, vet jag inte riktigt hur jag ska göra, då den konvarterar de den hittar till en variabel, och det är inte lätt att söka i variablar utan regexp... eller det kanske går att söka med regexp i en regexp kod?

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
114 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
108 ms — ändringar (db)