ForgeTotal.js 5
ro

Total.js 5

Folosește helperele încorporate pentru string, number, date și array

Total.js 5 · total5@0.0.19 utilitieshelpersstringarraydate Executată cu Total.js 5

Total.js adaugă un set de metode tipurilor încorporate din JavaScript. Sunt disponibile peste tot în aplicație, deci merită cunoscute înainte să scrii un helper propriu. Cele de mai jos sunt exersate de exemplu.

String: slug([max]) creează un text potrivit pentru URL (litere mici, fără accente sau simboluri); format(a, b) înlocuiește {0}, {1}; encode() / decode() fac escape și restaurează HTML; padLeft(length, char) / padRight(); parseInt2() și parseFloat2() citesc un număr dintr-un text și returnează 0 dacă nu există; isEmail(), isURL() și isJSON() validează; parseJSON() interpretează JSON și returnează null la eroare; md5(), sha1() și sha256() returnează hash-uri hexazecimale; capitalize() pune cu majusculă prima literă a fiecărui cuvânt.

Number: format(decimals, thousands, decimal), de exemplu (1234567.891).format(2) dă 1 234 567.89.

Date: format('yyyy-MM-dd HH:mm'), add('1 day') și diff(date, 'days').

Array: take(n) și skip(n), first() și last(), trim() (taie textele și elimină golurile), findItem(field, value) și findIndex(field, value), remove(value) (elimină fiecare potrivire și returnează array-ul), group(field) (returnează [{ name, items }]) și quicksort(field).

Obiecte: U.extend(target, source) îmbină source în target și îl returnează; U.clone(object) face o copie profundă.

controllers/utilities.js
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: '&lt;b&gt;'.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]
	});
}