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.
[kod]<%
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("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfg fgfdgdffdfggffggfgfgfgfdfs 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("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfg fgfdgdffdfggffggfgfgfgfdfs lalalal eoeooeoe", 5)
%>[/kod]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...
[kod]<%
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("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfg fgfdgdffdfggffggfgfgfgfdfs 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("sdfsdfdssfdfvdgdgfsfggfgfgfgffgfdfgfggfdggfg fgfdgdffdfggffggfgfgfgfdfs lalalal eoeooeoe", 5)
%>[/kod]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...
Kommentera