Версия 2.1 обновлена в начале потока:
Добавлено действие для тестирования URL с упрощенным выводом.
String - Модуль для работы со строками
-
@romanbiz, все полезные функции не имеющие действий:
_get_type(data) //Вернет тип указанных данных. В отличии от typeof возвращает не просто object при любом объекте, а object, null, array, date или regexp в зависимости от объекта. _validate_argument_type(data, type, name, act) //Вернет ошибку если тип data не соответствует указанному аргументу type, name - имя аргумента, act - имя действия. type может быть списком из нескольких возможных типов. _is_nil(data) //Вернет true, если data равно undefined или null, в остальных случаях вернет false. _is_nilb(data) //Вернет true, если data равно undefined, null, пустой строке, в остальных случаях вернет false. _avoid_nil(data, def) //Если data равно undefined или null, то вернет def. Если def не указан, вернет пустую строку. _avoid_nilb(data, def) //Если data равно undefined, null, пустой строке, то вернет def. Если def не указан, вернет пустую строку. _escape_regexp(str) //Экранирует специальные символы регулярных выражений в указанной строке _uniq_arr(arr) //Вернет указанный список без дубликатов _sort_arr(arr, asc) //Вернет отсортированный список, asc - необязательный параметр, сортировать по возрастанию, если true или не указан отсортирует по возрастанию, если false отсортирует по убыванию. _is_json_string(data) //Вернет true, если data является валидной json строкой, в остальных случаях вернет false. _to_arr(data) //Преобразовывает указанную строку в список/объект. _to_arr([1, 2, 3]) //[1, 2, 3] _to_arr('[1,2,3]') //[1, 2, 3] _to_arr('{"a":1,"b":2,"c":3}') //{a:1, b:2, c:3} _to_arr('1,2,3') //[1, 2, 3] _to_arr('one, two, three') //['one, 'two', 'three'] _no_exponents(num) //Преобразует число в строку без экспоненты. _no_exponents(1e-8) //"0.00000001" String(1e-8) //"1e-8" _from_string(str) //Преобразует указанную строку в другой тип данных, в число, true или false, объект или массив, null или undefined. _trim_left(str, chars) / _trim_right(str, chars) //Части действия "Подровнять" для левой и правой части, chars - необязательный параметр, обрезаемые символы. _trim_arr(arr, chars, left, right) //Тоже самое что и действие "Подровнять", но для списка строк. chars - необязательный параметр, обрезаемые символы. left/right - необязательные параметры с каких сторон обрезать. _clean_arr(arr, chars_to_delete, chars_to_space, multiple_spaces) //Тоже самое что и действие "Очистить", но для списка строк. chars_to_delete/chars_to_space - необязательные параметры, удаляемые символы/символы заменяемые пробелами. multiple_spaces - необязательный параметр, заменять многочисленные пробелы на одиночные. _normalize_phone_number(phone_number) //Нормализовать телефонный номер. Скорей всего будет улучшена и в будущем добавлена в виде действия. _normalize_phone_number('7 (800) 555 35 35') //"78005553535" _normalize_phone_number('+78005553535') //"78005553535" _normalize_phone_number('88005553535') //"88005553535" _format_phone_number(phone_number, mask) //Форматировать номер по указанной маске. Скорей всего будет улучшена и в будущем добавлена в виде действия. _format_phone_number('78005553535', '+X (XXX) XXX-XX-XX') //"+7 (800) 555-35-35" _format_phone_number('+78005553535', 'XXXXXXXXXX') //"8005553535" _query_string //https://nodejs.org/docs/latest/api/querystring.html _query_string.encode(obj) //Преобразует объект в строку запроса _query_string.encode({foo:'bar',baz:'qux'}) //"foo=bar&baz=qux" _query_string.decode(str) //Преобразовывает строку запроса в объект _query_string.decode("foo=bar&baz=qux") //{foo:'bar', baz:'qux'} _url(url).set(name, value).toString() //Заменить элемент ссылки, url - ссылка, name - название элемента, value - значение элемента. _ua(ua).changeBrowserVersion(version).toString() //Заменить версию браузера в User-Agent, ua - User-Agent, version - нужная версия браузера. Работа проверялась только с User-Agent от Chrome. _punycode //https://www.npmjs.com/package/punycode -
Что за магия тут происходит? Первое сообщение поменяло автора, причём время его отправления меньше, чем время отправления первого комента к теме. @Fox, харе шалить)
-
@DoctorKrolic said in String:
Что за магия тут происходит? Первое сообщение поменяло автора, причём время его отправления меньше, чем время отправления первого комента к теме. @Fox, харе шалить)
Да я решил исправить ситуацию, что бы автор модуля мог сам менять шапку и следить за темой. Я просто закрыл свою тему и перенёс все сообщения от туда - сюда.
-
-
-
-
-
@selector, это не баг, а недоработка, т.к
ł- юникод символ, а данное действие поддерживало только небольшую часть юникод символов.Добавил поддержку большинства юникод букв и чисел в действия "Разделить предложение на слова" и "Количество слов", перекачайте модуль из шапки темы.
-
@Zack9 выполнить код
[[STRING]] = 'указано' //encode [[STRING]] = [[STRING]].split('').map(function(char) { var code = char.charCodeAt(0).toString(16) while(code.length < 4) { code = '0' + code } return '\\u' + code }).join('') log([[STRING]]) //decode [[STRING]] = [[STRING]].replace(/\\u([^\\]+)/g, function(str, code) { return String.fromCharCode(parseInt(code, 16)) }) log([[STRING]])