Готовые примеры формул

На этой странице собраны разные примеры формул, которые можно просто скопировать и начать использовать, без необходимости в них разбираться.

Обрезание текста по длине

let({
  text: 'Это текст, который обрезается по длине',
  length: 20,
}, if(
  length(text) > length,
  substr(text, 0, length) & '…',
	text
))

В формулу нужно подставить переменную с текстом, а так же заменить 20 на количество символов, после которого строка будет обрезаться.

Форматирование дат

let({
  format: 'DAY.MONTH.YEAR HOUR:MINUTE',
  date: now(),
}, let({ dateStr: toString(toDate(date)) }, reduce([
  ['YEAR', substr(dateStr, 0, 4)],
  ['MONTH', substr(dateStr, 5, 2)],
  ['DAY', substr(dateStr, 8, 2)],
  ['HOUR', substr(dateStr, 11, 2)],
  ['MINUTE', substr(dateStr, 14, 2)],
  ['SECOND', substr(dateStr, 17, 2)],
], replace(value, item[0], item[1]), format)))

Если формулу не менять, то она будет выводить отформатированную текущую дату и время. Можно заменить now() переменной, дата в которой представлена в виде числа или строки.

Склонение существительного после числа

let({
	count: 22,
  words: ['день', 'дня', 'дней'],
}, count & ' ' & words[if(
  count % 100 > 4 and count % 100 < 20,
  2, [2, 0, 1, 1, 1, 2][if(count % 10 > 5, 5, count % 10)]
)])

В формуле нужно заменить 22 на ваше число, и заменить слова.

Размер файла из байт в килобайты и т.д.

let({
  bytes: 332334,
  units: ['B', 'KB', 'MB', 'GB', 'TB', 'PB'],
  precision: 2,
  zero: 'Empty',
}, if(bytes == 0, zero, let({
  e: min([floor(log(bytes, 1024)), 5])
}, round(bytes / pow(1024, e), precision) & units[e])))

В формуле bytes - это размер файла в байтах, units - используемые обозначения, а zero это текст, используемый при 0 байт.

Округление до тысяч, миллионов и т.д.

let({
  bytes: 435478876,
  units: [' тыс.', ' млн.', ' млрд.', ' трлн.'],
  precision: 0,
  zero: '0',
}, if(bytes == 0, zero, let({
  e: min([floor(log(bytes, 1000)), 4])
}, round(bytes / pow(1000, e), precision) & if (e > 0, units[e - 1], ''))))

Форматирование чисел

let({
  number: 1233445,
  delimiter: ' ',
}, let({ str: toString(number) }, trimStart(join(map(
  range(0, length(str)),
  if((length(str) - item) % 3 == 0, delimiter, '') & substr(str, item, 1)
)))))

Перемешивание списка в случайном порядке

let({
  array: [1, 2, 3, 4, 5]
}, map(
  sort(map(array, [item, random()]), item[1]),
  item[0]
))

Генератор случайных паролей

Данная формула перебирает массив array в функции sort, и возвращает массив в перемешанном виде в переменной pass, а далее функция slice собирает из этой переменной 9 символов для пароля. Количество символов можно регулировать изменяя число в slice.

let({
  array: 
["A", "B", "C", "D", "E", "F", "G", "H", "I", 
"K", "L", "M", "N", "O", "P", "Q", "R", "S", 
"T", "V", "X", "Y", "Z", "a", "b", "c", "d", 
"e", "f", "g", "h", "i", "k", "l", "m", "n", 
"o", "p", "q", "r", "s", "t", "v", "x", "y", 
"z", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "0", "_", "$", "@", "%", "&", "~"],
  pass: map(
  sort(map(array, [item, random()]), item[1]),
  item[0]
)                    
}, 
join(slice(pass, 0, 9 ), "")
)

Замена цвета в формуле

Данная формула преобразует цвет из формата RGB в формат RGBA, добавляя Alfa канал

let({
  color: data.fields.statusColor,
  bgcolor: replace(color, ")", ", 0.12)"),
},
bgcolor
)

Добавляем картинку (аватарку) формулой

Берет аватарку. Если аватарки нет — картинка no-avatar

if( user.current.avatar == "", 
"https://cs6.pikabu.ru/avatars/1121/x1121129-2144512139.png", 
user.current.avatar)

Дата и время из поля с datapicker из формата ДД.ММ.ГГГГ ЧЧ:ММ в формат Unix Date

let({
  dueDate: data.fields.dueDate,
  dateSplit: split(dueDate, ' '),
  dateDay: join(reverse(split(dateSplit[0], ".")), "-"),
  dateTime: dateSplit[1],
  date: toNumber(toDate(dateDay & ' ' & dateTime)),
},
date
)

Генератор ЧПУ ссылок

Данная формула выполняет транслитерацию rus-to-lat

let({
  ru: "Съешь же ещё этих мягких французских булок, да выпей чаю",
  text: lower(ru),
  dict: {
    a: ["а","a"],
    b: ["б","b"],
    v: ["в","v"],
    g: ["г","g"],
    d: ["д","d"],
    e: ["е","e"],
    yo: ["ё","yo"],
    zh: ["ж","zh"],
    z: ["з","z"],
    i: ["и","i"],
    ik: ["й","i"],
    k: ["к","k"],
    l: ["л","l"],
    m: ["м","m"],
    n: ["н","n"],
    o: ["о","o"],
    p: ["п","p"],
    r: ["р","r"],
    s: ["с","s"],
    t: ["т","t"],
    u: ["у","u"],
    f: ["ф","f"],
    h: ["х","kh"],
    ts: ["ц","ts"],
    ch: ["ч","ch"],
    sh: ["ш","sh"],
    sha: ["щ","sha"],
    tz: ["ъ",""],
    bi: ["ы","i"],
    mz: ["ь",""],
    ee: ["э","e"],
    yu: ["ю","yu"],
    ya: ["я","ya"],
    space: [" ", "-"],
    sim: ["!",""],
    zpt: [",",""]
  },
  rep0: replaceAll(text, dict.a[0], dict.a[1]),
  rep1: replaceAll(rep0, dict.b[0], dict.b[1]),
  rep2: replaceAll(rep1, dict.v[0], dict.v[1]),
  rep3: replaceAll(rep2, dict.g[0], dict.g[1]),
  rep4: replaceAll(rep3, dict.d[0], dict.d[1]),
  rep5: replaceAll(rep4, dict.e[0], dict.e[1]),
  rep6: replaceAll(rep5, dict.yo[0], dict.yo[1]),
  rep7: replaceAll(rep6, dict.zh[0], dict.zh[1]),
  rep8: replaceAll(rep7, dict.z[0], dict.z[1]),
  rep9: replaceAll(rep8, dict.i[0], dict.i[1]),
  rep10: replaceAll(rep9, dict.ik[0], dict.ik[1]),
  rep11: replaceAll(rep10, dict.k[0], dict.k[1]),
  rep12: replaceAll(rep11, dict.l[0], dict.l[1]),
  rep13: replaceAll(rep12, dict.m[0], dict.m[1]),
  rep14: replaceAll(rep13, dict.n[0], dict.n[1]),
  rep15: replaceAll(rep14, dict.o[0], dict.o[1]),
  rep16: replaceAll(rep15, dict.p[0], dict.p[1]),
  rep17: replaceAll(rep16, dict.r[0], dict.r[1]),
  rep18: replaceAll(rep17, dict.s[0], dict.s[1]),
  rep19: replaceAll(rep18, dict.t[0], dict.t[1]),
  rep20: replaceAll(rep19, dict.u[0], dict.u[1]),
  rep21: replaceAll(rep20, dict.f[0], dict.f[1]),
  rep22: replaceAll(rep21, dict.h[0], dict.h[1]),
  rep23: replaceAll(rep22, dict.ts[0], dict.ts[1]),
  rep24: replaceAll(rep23, dict.sh[0], dict.sh[1]),
  rep25: replaceAll(rep24, dict.sha[0], dict.sha[1]),
  rep26: replaceAll(rep25, dict.tz[0], dict.tz[1]),
  rep27: replaceAll(rep26, dict.bi[0], dict.bi[1]),
  rep28: replaceAll(rep27, dict.mz[0], dict.mz[1]),
  rep29: replaceAll(rep28, dict.ee[0], dict.ee[1]),
  rep30: replaceAll(rep29, dict.yu[0], dict.yu[1]),
  rep31: replaceAll(rep30, dict.ya[0], dict.ya[1]),
  rep32: replaceAll(rep31, dict.space[0], dict.space[1]),
  rep33: replaceAll(rep32, dict.ch[0], dict.ch[1]),
  rep34: replaceAll(rep33, dict.zpt[0], dict.zpt[1]),
  result: replaceAll(rep34, dict.sim[0], dict.sim[1]),
},
result)

Текущий месяц словами

let({
 monthr:  let({
  format: 'MONTH',
  date: now(),
}, let({ dateStr: toString(toDate(date)) }, reduce([
  ['YEAR', substr(dateStr, 0, 4)],
  ['MONTH', substr(dateStr, 5, 2)],
  ['DAY', substr(dateStr, 8, 2)],
  ['HOUR', substr(dateStr, 11, 2)],
  ['MINUTE', substr(dateStr, 14, 2)],
  ['SECOND', substr(dateStr, 17, 2)],
], replace(value, item[0], item[1]), 

format
)))}, 

if(monthr == "01", "января", 
if(monthr == "02", "февраля",
if(monthr == "03", "марта",
if(monthr == "04", "апреля", 
if(monthr == "05", "мая",
if(monthr == "06", "июня",
if(monthr == "07", "июля", 
if(monthr == "08", "августа",
if(monthr == "09", "сентября",
if(monthr == "10", "октября", 
if(monthr == "11", "ноября", "декабря"))))))))))))

ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

Не можете найти то, что ищите?

Напишите нам. на связи 24/7. Среднее время ожидания ответа: 10-15 минут. Также вы можете вступить в наш Телеграм-чат, где собралось много специалистов и пользователей.

Поддержка Creatium

Агенты ответят через 10 минут

Агенты ответят

Блог, курсы и полезные материалы 

Платформа сайтов любой сложности