Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Константы
- SECOND = 1000;
- MINUTE = 60000;
- HOUR = 3600000;
- DAY = 86400000;
- WEEK = 604800000;
- DEG2RAD = Math.PI / 180;
- /**
- * Экранирует символы: \, ', ".
- * @param {string} str
- * @return {string}
- */
- function addSlashes(str)
- {
- return str.replace(/([\\'"])/g, '\\$1');
- }
- /**
- * Обратная функция для addSlashes.
- * @param {string} str
- * @return {string}
- */
- function stripSlashes(str)
- {
- return str.replace(/\\([\\'"])/g, '$1');
- }
- /**
- * Заменяет на HTML-сущности спецсимволы: &, <, >, ".
- * @param {string} str
- * @return {string}
- */
- function escapeHTML(str)
- {
- return str.replace(/[&"<>]/g, function (x) {
- return '&' + {'&': 'amp', '"': 'quot', '<': 'lt', '>': 'gt'}[x] + ';';
- });
- }
- /**
- * Возвращает случайное число с дробной частью.
- * @param {number} min Минимальное значение.
- * @param {number} max Максимальное значение.
- * @return {number} Случайное число.
- **/
- function rand(min, max)
- {
- return Math.random() * (max - min + 1) + min;
- }
- /**
- * Возвращает случайное число без дробной частью.
- * @param {number} min Минимальное значение.
- * @param {number} max Максимальное значение.
- * @return {number} Случайное число.
- **/
- function randInt(min, max)
- {
- return Math.floor(rand(min, max));
- }
- /**
- * Возвращает случайный элемент массива.
- * @param {array} arr
- * @return {object} Случайный элемент массива.
- **/
- function randElem(arr)
- {
- return arr[randInt(0, arr.length - 1)];
- }
- /**
- * Генерирует случайную строку.
- * @param {number} len Длина строки. По-умолчанию 8 символов.
- * @param {string} chars Набор символов. По-умолчанию используются цифры и ASCII буквы в нижнем регистре.
- * @return {string}
- **/
- function randStr(len, chars)
- {
- if (len == undefined) {
- len = 8;
- }
- if (chars == undefined) {
- chars = '1234567890abcdefghijklmnopqrstuvwxyz';
- }
- var ret = '';
- var last = chars.length - 1;
- for (var i = 0; i < len; ++i) {
- ret += chars.charAt(randInt(0, last));
- }
- return ret;
- }
- /**
- * Перемешивает элементы массива.
- * @param {array} arr Исходный массив.
- * @return {array} Новый массив.
- **/
- function shuffle(arr)
- {
- return arr.sort(function () {
- return 0.5 > Math.random();
- });
- }
- /**
- * Парсит cookie строку и возвращает объект.
- * @param {string} cookie
- * @return {object}
- **/
- function parseCookie(cookie)
- {
- if (cookie == undefined) {
- cookie = document.cookie;
- }
- var parts = cookie.split(';');
- var part, pos, k, v;
- var ret = {};
- for (var i = 0; i < parts.length; ++i) {
- part = parts[i].trim();
- pos = part.indexOf('=');
- if (pos > 0) {
- k = decodeURIComponent(part.substr(0, pos));
- v = decodeURIComponent(part.substr(pos + 1));
- ret[k] = v;
- }
- }
- return ret;
- }
- /**
- * Устанавливает cookie.
- * @param {string} name Имя.
- * @param {string} value Значение.
- * @param {number} days Количество дней.
- **/
- function setCookie(name, value, days)
- {
- document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + '; Expires=' + new Date(new Date().getTime() + days * 86400000).toUTCString();
- }
- /**
- * Удаляет cookie.
- * @param {string} name Имя.
- **/
- function deleteCookie(name)
- {
- setCookie(name, '', -1);
- }
- /**
- * Экранирует специальные символы, используемые в регулярном выражении.
- * @param {string} str
- * @return {string}
- */
- function regExpEscape(str) {
- return str.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
- }
- /**
- * Сохраняет файл по ссылке под определенным именем.
- * @param {string} name Имя сохраняемого файла.
- * @param {string} url Путь до файла на сервере либо Data URI.
- */
- function saveFile(name, url)
- {
- var link = document.createElement('a');
- link.setAttribute('download', name);
- link.href = url;
- link.onclick = function () {
- document.body.removeChild(this);
- };
- link.style.display = 'none';
- document.body.appendChild(link);
- link.click();
- }
- /**
- * Парсит url и возвращает объект.
- * @param {string} url Путь до файла на сервере.
- * @return {object}
- */
- function parseURL(url)
- {
- var link = document.createElement('a');
- link.href = url;
- var obj = {
- hash: '',
- host: '',
- hostname: '',
- href: '',
- origin: '',
- pathname: '',
- port: '',
- protocol: '',
- search: ''
- };
- for (var i in obj) {
- obj[i] = link[i];
- }
- return obj;
- }
- /**
- * Возвращает изображение с холста в виде Blob.
- * @param {HTMLCanvasElement} canvas
- * @param {string} MIME-тип в который хотим преобразовать изображение на холсте.
- * @param {number} quality Качество JPEG-изображения, число с плавающей точкой в диапазоне от 0 до 1.
- * @return {Blob}
- */
- function canvasToBlob(canvas, type, quality)
- {
- var data = canvas.toDataURL(type, quality);
- data = atob(data.substr(data.indexOf(',') + 1));
- var i = data.length;
- var arr = new Uint8Array(i);
- while (i--) {
- arr[i] = data.charCodeAt(i);
- }
- return new Blob([arr], {type: type});
- }
- /**
- * "Переворачивает" строку.
- * @param {string} str
- * @return {string}
- **/
- function reverseStr(str)
- {
- return str.split(/|/).reverse().join('');
- }
- /**
- * Повторяет строку n-раз.
- * @param {string} str
- * @param {number} n Сколько раз повторить строку.
- * @return {string}
- **/
- function repeatStr(str, n)
- {
- return new Array(++n).join(str);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement