webForumDet fria alternativet

Förhindra långa ord

ASP

2 svar · 6 264 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Frågan#1

Här kommer två sätt för hur man kan hindra långa ord som tvingar fram sidscrollen. Gör dessa för att jag sett så väldigt många konstiga lösningar.

<%
Option Explicit

Function ShorterString1(ByVal sString, ByVal lMaxLength)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.Pattern = "(\S{" & lMaxLength & "})"
	ShorterString1 = objRegExp.Replace(sString, "$1 ")
	Set objRegExp = Nothing
End Function

Response.Write ShorterString1("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfgfgfdgdffdfggffggfgfgfgfdfs lalalal eoeooeoe", 5) & "<br>"

Function ShorterString2(ByVal sString, ByVal lMaxLength)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.Pattern = "(\S{" & lMaxLength & ",})"
	ShorterString2 = objRegExp.Replace(sString, "<span style=""word-break: break-all;"">$1</span>")
	Set objRegExp = Nothing
End Function

Response.Write ShorterString2("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfgfgfdgdffdfggffggfgfgfgfdfs lalalal eoeooeoe", 5)
%>

Den första sätter in mellanslag efter X antal tecken utan mellanslag. kan bli dubbla mellanslag om ordet är lika långt som maxlängden, men det bör inte spela någon roll eftersom att det inte visas som två mellanslag på en webbsida.
Den andra sätter in en span-tagg runt det långa ordet med CSS-attributet word-break: break-all;. Detta gör att det kommer att radbrytas när det behövs, men inga mellanslag visas. Lätt snyggaste lösningen, men lite trixig om man vill kombinera den med Server.HTMLEncode...

Medlem sedan okt. 200459 inlägg
#2

Mycket najs! Tack! :P

Medlem sedan mars 20023 686 inlägg
#3

//Red.

skrev i fel tråd :OO

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