webForumDet fria alternativet

ta ut ord ur en längre sträng

ASP

5 svar · 240 visningar · startad av eriks

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

Hej! Jag vill ta ut ett ord ur en längre sträng, och jag har läst artikeln här på wf om stränghantering. Jag vill dock utveckla det lite. Jag skriver:

<%
text = "En grodas mobil!"
text = Right(text,13)
Response.write text
%>

Då får jag ju ut "grodas mobil!", men hur ska jag göra om jag bara vill få ut det första av orden. Jag vill säga ungefär "skriv ut texten tills du kommer till ett mellanslag". Då skulle jag ju bara få ut grodas i detta exemplet. Någon som kan och har fattat?

Tack! /Erik

Medlem sedan juli 20011 129 inlägg
#2

Jag är inte riktigt med men för att få ut ordet före det första mellanslaget...
Gör så här:

SpacePos = InStr(TextString, " ")
Response.Write Mid(TextString, 1, SpacePos)

------------------
Den röda webkodarmasken är lös... Ahhrghhh

Medlem sedan juni 2001206 inlägg
#3

Så här kan du också göra...

<%
text = "En grodas mobil!"
arrText = split(text," ")

response.write "Första ordet: " & arrText(0) & "<br>"
response.write "Andra ordet: " & arrText(1) & "<br>"
response.write "Tredje ordet: " & arrText(2) & "<br>"

%>

------------------
MVH
Harback

Medlem sedan apr. 20011 418 inlägg
#4

tack så mycket...

vad jag egentligen menade var att jag ville skriva ut texten som jag visade i mitt kodexemple, men att jag hade en funktion som sa typ "Response.Write text 'men när du kommer till ett mellanslag så sluta". Jag skulle även vilja kunna modifiera så att den säger 'men när du kommer till två citattecken eftervarandra så sluta. Förstår ni?

Tack! /Erik

Medlem sedan juli 20011 129 inlägg
#5

Jag kan demonstrera en lite funktion som kan hjälpa dig en bit på vägen iaf.

--------------------------------------
Function EndAtWord(MyString, EndAtWord)
arrText = split(MyString, " ")

For cLoop = 0 To UBound(arrText)
TheWhole = TheWhole & arrText(cLoop)
If EndAtWord = cLoop Then
Exit For
End If
Next
EndAtWord = TheWhole
End Function

Och så kallar du bara genom.

<%
Text = "Grodor har inte mobiler"
%>

De 3 första orden i meningen är: <%= EndAtWord(Text, 3)%>

T.ex.

Hoppas det hjälpte lite mera...

------------------
Den röda webkodarmasken är lös... Ahhrghhh

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

Regular expressions är ett annat bra alternativ om man har VBScript 5 Engine eller nyare.

Läs vides utmärkta guide i ämnet:
http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_11.asp

vänligen Jörgen HP

------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***

280 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)