webForumDet fria alternativet

Dela sträng (RegExp)

ASP

4 svar · 312 visningar · startad av Dee

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

Har snart slut på hår att slita från min arma hjässa... :OO
Vilket mönster ska jag använda för att få träffar på det sista mellanslaget i den tidigare träffen?
Så här ser funktionen ut så här långt:

'----------------------------------------------------------------- 
Function check(myString) 

Set objRegExp = New regexp 
objRegExp.Global = true 
objRegExp.IgnoreCase = true 

objRegExp.Pattern = "(.{22})" 
myString = objRegExp.Replace(myString,"$1") 

'Träffar alla, inte bara sista mellanslaget 
objRegExp.Pattern = "(\s)" 
myString = objRegExp.Replace(myString,"$1<br>") 
    
Trim myString 
check = myString 
End Function 
'-----------------------------------------------------------------

Tack på förhand!

/r att byta rubrik på inlägget gick ju inte så bra :OO

Medlem sedan dec. 200012 464 inlägg
#2

Vad är det du vill åstadkomma? Kan du ge ett exempel på indata och förväntat resultat? Jag har svårt för verbala beskrivningar.

OT:

Trim myString

borde vara:

mystring = Trim (myString)
Medlem sedan okt. 2001110 inlägg
#3

Funktiunen ska användas som en del av en forumkod, alltså strängen som går in kommer att innehålla inlägget.

Det första jag vill göra är att dela strängen efter 22 tecken...

objRegExp.Pattern = "(.{22})" 
myString = objRegExp.Replace(myString,"$1")

...det är inga problem, men jag vill ju inte att strängen ska delas mitt i ett ord. Utan vill då leta efter det sista mellanslaget innan och dela strängen där istället.

Ex:
myString = Jag gillar wF, alla här är snälla och hjälper mig när jag har problem.

Resultat:
Jag gillar wF, alla hä
r är snälla och hjälper mig när jag har problem.

Men jag vill ha det:
Jag gillar wF, alla
här är snälla och hjälper mig när jag har problem.

Medlem sedan dec. 200012 464 inlägg
#4
myString = "Jag gillar wF, alla här är snälla och hjälper mig när jag har problem"
Function check(myString) 

Set objRegExp = New regexp 
objRegExp.Global = true 
objRegExp.IgnoreCase = true 

objRegExp.Pattern = "(\s\S*?$)" 
if len(mystring) > 22 then myString = objRegExp.Replace(mid(myString,1,22),"<br>$1") & check(mid(mystring,23))

check = myString 
End Function 
response.write check(Mystring)

ger

Jag gillar wF, alla
här är snälla och
hjälper mig när jag har
problem

Om du bara vill ha en radbrytning, så

myString = "Jag gillar wF, alla här är snälla och hjälper mig när jag har problem"
Function check(myString) 

Set objRegExp = New regexp 
objRegExp.Global = true 
objRegExp.IgnoreCase = true 

objRegExp.Pattern = "(\s\S*?$)" 
if len(mystring) > 22 then myString = objRegExp.Replace(mid(myString,1,22),"<br>$1") & mid(mystring,23)

check = myString 
End Function 
response.write check(Mystring)

det ger resultatet

Jag gillar wF, alla
här är snälla och hjälper mig när jag har problem

Medlem sedan okt. 2001110 inlägg
#5

Ett stort tack!

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