webForumDet fria alternativet

räkna grejer i en sträng

ASP

5 svar · 975 visningar · startad av pepino

Medlem sedan okt. 200283 inlägg
Frågan#1

Jag har en sträng:

hejhej<BR>hm<BR>vem är du<BR>

Jag vill få fram antalet <br>
Hur gör man?

/Henrik

Medlem sedan sep. 2002366 inlägg
#2

Finns säkert nån klurig fördefinerad funktion för det där.. men det här borde funka:

<%
txt = "hejhej<BR>hm<BR>vem är du<BR>"

numbr = UBound(Split(txt,"<BR>"))
%>

Antal <BR> är <%=numbr%>

-Eitraz

Medlem sedan mars 20025 907 inlägg
#3

Nackdelen med Eitraz kod är att den är skiflägeskänslig.

<%
strText ="hejhej<BR>hm<BR>vem är du<BR> "

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\<BR\>"
Set Matches = objRegExp.Execute(strText)
Response.write Matches.count&" stycken &lt;BR&gt;"
%>
Medlem sedan sep. 2002366 inlägg
#4

Eller så här då ;)
Icke skiftlägekänsligt längre..

<%
txt = "hejhej<BR>hm<BR>vem är du<BR>"

numbr = UBound(Split(UCase(txt),"<BR>"))
%>

Antal <BR> är <%=numbr%>

-Eitraz

Medlem sedan maj 200010 687 inlägg
#5

En smidig funktion:

Function InStrCount(ByVal sStr, _
	ByVal sFind)
	
	InStrCount = (Len(sStr) - Len(Replace(sStr, sFind, "", 1, -1, 1))) / Len(sFind)
	
End Function

Response.Write InStrCount("test mfvmkfmbbf testvkmdvfkfbtest", "test")

Funkar och går att använda som vanliga InStr. Enda skillnaden är att när den hittar något så sägger den inte var den hittar det först, utan istället hur många gånger den hittar det. :)

Medlem sedan okt. 200283 inlägg
#6

Eitraz andra kod passa bäst, tack!

245 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)