---
title: "Stränghantering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12113-stränghantering"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "sharkface"
published: "2001-10-15T20:15:00.000Z"
updated: "2001-10-16T07:45:00.000Z"
replies: 5
views: 196
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12113-stränghantering"
---

# Stränghantering

## #1 — sharkface, 2001-10-15T20:15Z

Hej!

Vill göra följande:

text i databas = "Bla bla bla namn_olle bla bla"

If "namn\_" in texten then
gör om namnet som står efter "namn\_" till Ucase. Ta tecknen efter "namn\_" och kapa när första mellanslaget kommer efter namnet.

Behöver räkna antalet tecken efter "namn\_" och köra en mid() så att bara själva namnet blir Ucase. Vill dölja "namn\_" för användarna.

Resultatet ska bli följande när det hämtas ut ur databasen:

"Bla bla bla OLLE bla bla"

Jag suger på stränghantering, hoppas någon förstår vad jag vill göra och kan hjälpa mig...

Permalänk: https://www.webforum.nu/p/12113

## #2 — LarsG, 2001-10-15T20:41Z

```
Dim position,txt,txt_length,name_length
txt = "den text du har"
position = instr(txt,"namn_")
if position > 0 then
   txt_length = len(txt)
   name_length = instr(mid(txt,position)," ")
   if name_length = 0 then
      name_length = txt_length - position + 1
   end if
   txt = left(txt,position-1) & _
   Ucase(mid(txt,position+5,name_length-5)) & _
   right(txt,txt_length-(position+name_length)+1)
end if
```

Permalänk: https://www.webforum.nu/p/292149

## #3 — icaaq, 2001-10-15T20:47Z

```
strText = "Bla bla bla haha namn_olle bla bla"
If InStr(strText, "namn_") > 0 Then
intFirstPos = Instr(strText, "namn_")
intLastPos = Instr(intFirstPos, strText, " ")
strNamn = UCASE(Mid(strText, intFirstPos + 5, intLastPos - intFirstPos - 5))
strtexten = Left(strText, intFirstPos - 1)
strTexten = strTexten + strNamn
strTexten = strTexten + Mid(strText, intLastPos)
End If
```

Men hur det går om Olee kommer två ggr vet jag inte....då är nog Regular.exp bättre ;)

Permalänk: https://www.webforum.nu/p/292150

## #4 — LarsG, 2001-10-15T22:09Z

Regexp variant som tar hand om flera förekomster av namn_xxxx

```
t = "din sträng med namn_olle eller namn_kurt"
set o = new regexp
o.global = true
o.pattern = "(namn_[A-Za-z]+)"
Set Matches = o.Execute(t)
for i = 0 to matches.count-1
 name = matches.item(i).value
 t = replace(t,name,ucase(mid(name,6)))
next
```

Permalänk: https://www.webforum.nu/p/292151

## #5 — sharkface, 2001-10-16T06:34Z

Den sista varianten ser väldigt bra ut. Det jag nu oroar mig för är:

o.pattern = "(namn\_\[A-Za-z\]+)"

innebär detta att speciella tecken som tex "@" och "." inte kan ingå i strängen? (vilka tecken ingår i A-Z)? 

Jag ska nämligen även leta efter "epost\_" i strängen på samma sätt som jag söker efter "namn\_".

Är tillägg av denna typ möjligt?

o.pattern = "(namn\_\[A-Za-z\]+\[@\]+\[.\])"

Permalänk: https://www.webforum.nu/p/292152

## #6 — LarsG, 2001-10-16T07:45Z

\[A-Za-z\] matchar bara engelska bokstäver så @ och . kommner inte med.

I så fall kan du testa med

```
o.pattern = "(epost_[A-Za-z@\.]+)"
```

\+ betyder en eller flera förekomster.

Permalänk: https://www.webforum.nu/p/292153

---

Tråden på webben: https://www.webforum.nu/amne/asp/12113-stränghantering
