Новая версия 1.3
Убрал зависимость от модуля "Строка"В режиме компиляции не работало, если в проекте не было действий этого модуля.
Название: String
Версия: 1.0
Данные: String.zip, CommonCode.zip - вспомогательный модуль, необходимый для работы.
Исходник: -.
Согласие на добавление модуля в BAS: Модуль добавлен в BAS.
Описание: В модуле собрано множество полезных действий для работы со строками и не только. В него так же перенесены несколько стандартных действий.
История версий:
Скриншоты:

Для работы модуля на BAS ниже версии 24.1.0 нужно установить вспомогательный модуль CommonCode.zip
Модуль хорошо оттестирован, но если вы будете испытывать проблемы при работе, то можно их описать в этой теме.
За Punycode и парсить CSV со своими разделителями отдельное спасибо!
ага
:D, я если честно не подумал об этом. Мне сказали выложить модуль на форум, я выложил
Так мы и поверили, все кармы нахапаться не можешь (больше чем у @support), у самого поди уже ершик золотой в туалете стоит! xD
ага
:D, я если честно не подумал об этом. Мне сказали выложить модуль на форум, я выложилТак мы и поверили, все кармы нахапаться не можешь, у самого поди уже ершик золотой в туалете стоит! xD
и дача в Геленджике? ))
ага
:D, я если честно не подумал об этом. Мне сказали выложить модуль на форум, я выложилТак мы и поверили, все кармы нахапаться не можешь, у самого поди уже ершик золотой в туалете стоит! xD
и дача в Геленджике? ))
Видимо! Тот мужчина сказал же, что не его! )))
Кстати, помимо действий, модуль содержит множество функций которые не выполнены в виде действий по различным причинам. Вот пример некоторых таких функций:
_get_type(data) //Вернет тип указанных данных. В отличии от typeof возвращает не просто object при любом объекте, а object, null, array, date или regexp в зависимости от объекта.
_get_type(123) //"number"
_get_type("hi") //"string"
_get_type([1,2,3]) //"array"
_get_type(/\s/) //"regexp"
_is_nil(data) //Вернет true, если data равно undefined или null, в остальных случаях вернет false.
_is_nil(undefined) //true
_is_nil(null) //true
_is_nil(123) //false
_is_nilb(data) //Вернет true, если data равно undefined, null, пустой строке, в остальных случаях вернет false.
_is_nilb(undefined) //true
_is_nilb(null) //true
_is_nilb("") //true
_is_nilb("hi") //false
_avoid_nil(data, def) //Если data равно undefined или null, то вернет def. Если def не указан, вернет пустую строку.
_avoid_nil(undefined) // ""
_avoid_nil(null, 1) //1
_avoid_nil(true) //true
_avoid_nilb(data, def) //Если data равно undefined, null, пустой строке, то вернет def. Если def не указан, вернет пустую строку.
_avoid_nilb(undefined) // ""
_avoid_nilb(null, 1) //1
_avoid_nilb("", 2) //2
_avoid_nilb([1,2,3]) //[1,2,3]
_from_string(str) //Преобразует указанную строку в другой тип данных, в число, true или false, объект или массив, null или undefined.
_from_string("123") //123
_from_string("true") //true
_from_string("null") //null
_from_string('{"one":1,"two":2,"three":3}') //{one:1, two:2, three:3}
_url(url).set(name, value).toString() //Заменить элемент ссылки, url - ссылка, name - название элемента, value - значение элемента.
_url('https://site.com/topic/14772/string').set('hostname', 'community.bablosoft.com').toString() //"https://community.bablosoft.com/topic/14772/string"
_ua(ua).changeBrowserVersion(version).toString() //Заменить версию браузера в User-Agent, ua - User-Agent, version - нужная версия браузера. Работа проверялась только с User-Agent от Chrome.
_ua('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36').changeBrowserVersion('88.0.4324.104').toString() //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"
@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, харе шалить)
Да я решил исправить ситуацию, что бы автор модуля мог сам менять шапку и следить за темой. Я просто закрыл свою тему и перенёс все сообщения от туда - сюда.