Szöveg vágásnál sokan nem tőrödnek azzal, hogy szavakat vágnak ketté, pedig néha egy félbevágott szó kifejezetten csúnya, illetve előnytelen lehet.
Az alábbi kód szinte egy az egyben a PHP-Smarty-ból vet kód JavaScript implementációja:
String.prototype.truncate = function(length, etc, break_words) {
if (typeof length == 'undefined') length = 80;
if (typeof etc == 'undefined') etc = '...';
if (!length) return '';
if (this.length <= length) return this.toString();
length -= etc.length;
if (break_words) {
return this.substr(0, length) + etc;
}
return this.substr(0, length+1).replace(/\s+?(\S+)?$/,'') + etc;
};
if (typeof length == 'undefined') length = 80;
if (typeof etc == 'undefined') etc = '...';
if (!length) return '';
if (this.length <= length) return this.toString();
length -= etc.length;
if (break_words) {
return this.substr(0, length) + etc;
}
return this.substr(0, length+1).replace(/\s+?(\S+)?$/,'') + etc;
};
És akkor egy példa, hogy miről is van szó:
var str = 'Lorem ipsum dolor sit amet consectetur adipiscing elit.';
for (var i = 0; i < 60; i++) {
console.log( i, str.truncate(i) );
}
for (var i = 0; i < 60; i++) {
console.log( i, str.truncate(i) );
}