Používajte vstavané pomocné funkcie pre string, number, date a array
Total.js pridáva k vstavaným typom JavaScriptu sadu metód. Sú dostupné v celej aplikácii, takže ich stojí za to poznať skôr, než napíšete vlastnú pomocnú funkciu. Tie nižšie príklad overuje.
String: slug([max]) vytvorí text vhodný do URL (malé písmená, bez diakritiky a symbolov); format(a, b) nahradí {0}, {1}; encode() / decode() escapujú a obnovujú HTML; padLeft(length, char) / padRight(); parseInt2() a parseFloat2() prečítajú číslo z textu a vrátia 0, ak tam žiadne nie je; isEmail(), isURL() a isJSON() validujú; parseJSON() spracuje JSON a pri chybe vráti null; md5(), sha1() a sha256() vracajú hexadecimálne hashe; capitalize() zmení na veľké prvé písmeno každého slova.
Number: format(decimals, thousands, decimal), napríklad (1234567.891).format(2) dá 1 234 567.89.
Date: format('yyyy-MM-dd HH:mm'), add('1 day') a diff(date, 'days').
Array: take(n) a skip(n), first() a last(), trim() (orezáva texty a odstraňuje prázdne), findItem(field, value) a findIndex(field, value), remove(value) (odstráni každú zhodu a vráti pole), group(field) (vráti [{ name, items }]) a quicksort(field).
Objekty: U.extend(target, source) zlúči source do target a vráti ho; U.clone(object) vytvorí hlbokú kópiu.
exports.install = function() {
ROUTE('GET /utils/', utils);
};
function utils($) {
var items = [{ type: 'a', n: 1 }, { type: 'b', n: 2 }, { type: 'a', n: 3 }];
var original = { a: { b: 1 } };
var copy = U.clone(original);
copy.a.b = 2;
$.json({
slug: 'Hello Wörld & Co!'.slug(),
slugmax: 'Hello brave new world'.slug(11),
format: '{0} has {1} items'.format('Ann', 3),
encode: '<a href="x">&</a>'.encode(),
decode: '<b>'.decode(),
pad: ['7'.padLeft(3, '0'), '7'.padRight(3, '0')],
numbers: ['abc12x'.parseInt2(), '3,5kg'.parseFloat2(), 'none'.parseInt2()],
is: ['a@b.cz'.isEmail(), 'nope'.isEmail(), 'https://totaljs.com'.isURL(), '{"a":1}'.isJSON(), 'abc'.isJSON()],
json: ['{"a":1}'.parseJSON(), 'not json'.parseJSON()],
md5: 'abc'.md5(),
sha1: 'abc'.sha1(),
capitalize: 'hello big world'.capitalize(),
number: [(1234567.891).format(2), (1234567.891).format(2, ' ', ',')],
date: [new Date(2026, 0, 5, 9, 7).format('yyyy-MM-dd HH:mm'), new Date(2026, 0, 31).add('1 day').format('yyyy-MM-dd'), new Date(2026, 0, 5).diff(new Date(2026, 0, 1), 'days')],
take: [[1, 2, 3, 4, 5].take(2), [1, 2, 3, 4, 5].skip(3), [1, 2, 3].first(), [1, 2, 3].last()],
trim: ['a', '', ' b '].trim(),
find: [[{ id: 1 }, { id: 2 }].findItem('id', 2), [{ id: 1 }, { id: 2 }].findIndex('id', 2)],
remove: [1, 2, 3, 2].remove(2),
group: items.group('type'),
sort: [{ n: 'b' }, { n: 'a' }].quicksort('n'),
extend: U.extend({ a: 1 }, { b: 2 }),
clone: [original.a.b, copy.a.b]
});
}