visst går det
<%
dim string
string = "kalle tittar [hej] på tv [hoj] och är glad"
omgjord = Mid(string,23,3)
Response.write omgjord
%>
19 svar · 270 visningar · startad av bagera
Kan man hämta ut delar av text från en variabel?
om texten ser ut så här:
kalle tittar [hej] på tv [hoj] och är glad
och jag vill hämta bara "på tv", går det?
visst går det
<%
dim string
string = "kalle tittar [hej] på tv [hoj] och är glad"
omgjord = Mid(string,23,3)
Response.write omgjord
%>
Om jag inte vet värdet i variabeln då?
vad det än står i variablen så vill jag plocka ut allt mellan [hej] och [hoj].
Du får helt enkelt använda dig utav Regular Expression för detta.
jag har tittat lite på split men regular expression verkar roligare
än så länge har jag:
<%
strTarget = "test testing testar [hej] testo testi [hoj]"
set objRegExp = New RegExp
objRegExp.Pattern = "[hej] *"
objRegExp.IgnoreCase = false
objRegExp.Global = true
set colMatches = objRegExp.execute(strTarget)
for each Match in colMatches
response.write "funnen på " & Match.FirstIndex & ". "
response.write "värdet är '" & Match.value & "'.<br>"
next
%>
och får ut:
Match.FirstIndex
Match.value
men hur kan jag göra texten emellan till en variabel?
Börjar haja lite här nu men det funkar ju inte.
Ska inte regular expression funka i vb5.0?
Är det nåt fel på detta?
<%
hej ="[hej]www.hej.se[/hej] fgdfgdfg dfg df gdfg"
Function hejpryl(text)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Pattern = "\[hej=(.*?)\](.*?)\[\/hej\]"
objRegExp.IgnoreCase = True
objRegExp.Global = True
hejpryl= objRegExp.Replace(text,"<a href=$1>$2</a>")
Set objRegExp = Nothing
hejpryl = text
End Function
%>
<%=hejpryl(hej)%>
Vad är det som blir fel? Felmeddelande?
Så här ser det ut
ASPError.ASPCode =
ASPError.Number = -2146823270 (0x800A139A )
ASPError.Source =
ASPError.Category = Microsoft VBScript runtime
ASPError.File = /Forum/test/test7.asp
ASPError.Line = 9
ASPError.Column = -1
ASPError.Description = Unexpected quantifier
Det är lite olika syntax mellan de olika vbs-versionerna, testa att uppgradera till 5.5 eller 5.6.
Har letat som en galning efter 5.5 men kan inte hitta den.
någon som vet var?
microsofts djungel knäckte mig idag
Har läst en hel del nu och provat hur mycket som helst det funkar bättre nu efter uppgradering till 5.5 (tack!!), men jag kan tametusan inte begripa det endå.
kan någon förklara för mig hur man får ut värdet mellan [hej] och [/hej].
har pulat med olika patterns hela natten.
jag har kommit så långt att jag kan replacea [hej] och [/hej] men jag vill ju ha med det emellan också.
och vad är det som gör värdet till en
$1 eller $2?
Så här kanske:
Dim intStartPos, intEndPos, strTemp, strResult
strTemp = "[hej]text mellan taggar[/hej]"
intStartPos = inStr(1, strTemp, "[hej]")
intEndPos = inStr(1, strTemp, "[/hej]")
strResult = mid(strTemp, intStartPos+5, intEndPos-(intStartPos+5))
Response.Write(strResult)
//Micke
ja det funkar ju men jag vill kunna göra ett pattern som gör samma sak
så här:
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
men den här funkar inte, å jag förstår inte riktigt vad som händer trots vides exelenta artikel.
Vad den gör är att den tar den text som finns i start taggen och stoppar i href. Sedan tar den den text som finns mellan taggarna och stoppar i a-taggen.
Lite mer komplett blir det såhär:
Set re = New RegExp
parser = "kalle"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\(.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)
//Micke
Oops, så här blir bättre:
Set re = New RegExp
parser = "[url="http://www.kalle.com"]kalle[/url]"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)
//Micke
Tredje gången gillt:
Set re = New RegExp
parser = "[url="http://www.kalle.com"]kalle[/url]"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)
:-)
Äsch, kolla <A HREF="http://bulow.darktech.org/test.asp"" TARGET=_blank>här</A> istället.
Nu släppte det
så här ville jag ju ha det!!
<%
texten = "[*url]www.kalle.com[/url*]"
(utan stjärnor naturligtvis
function pars(parser)
Set parsing = New RegExp
parsing.Global = True
parsing.IgnoreCase = True
parsing.Pattern = "\[url\](.*?)\[\/url\]"
parser = parsing.Replace(parser,"<a href=$1>$1</a>")
pars = parser
end function
%>
<%=pars(texten)%>
Tackar alla för hjälpen!!