Begränsa ordlängd

Perl & Ruby

3 svar · 266 visningar · startad av sberg

Medlem sedan feb. 20018 inlägg
Trådstart#1

I min gästbok vill jag begränsa längden på de ord som skrivs. Det är alltså inte hur mycket som skrivs i fältet utan själva orden vart och ett för sig som jag vill begränsa längden på.

Gästboken är skriven i perl. Finns det någon bra kodsnutt att skriva in?

Medlem sedan nov. 19991 033 inlägg
#2

Om fältet, du vill begränsa orden från, heter message så kan du använda

$FORM{'message'} =~ s/(\S{50})/$1 /isg;

där siffran 50 anger anatal tecken.
Resterande bokstäver raderas inte, utan hamnar efter ett mellanslag.
Praktiskt om du använder tabeller som inte får påverkas av långa ord.

Medlem sedan dec. 19992 555 inlägg
#3

Beror ju på vad du vill göra med de ord som är för långa. Följande snutt klipper helt sonika av orden efter 7 tecken (7:an kan du ändra till vad du vill). Jag antar här att indata ligger i variabeln $indata.

$indata =~ s/(\S{7})\S+/$1/gs;

[r]Var lite långsam där tydligen. :)[/r]

Medlem sedan feb. 20018 inlägg
#4

Tack så mycket. Funkar alldeles utmärkt.

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