Новая версия 1.3
Убрал зависимость от модуля "Строка"В режиме компиляции не работало, если в проекте не было действий этого модуля.
@FastSpace Спасибо за модуль! Давно хотел что - то подобное, постоянно приходится брать информацию из сторонних сайтов и бывает что из за них скрипт стопориться. Еще бы адрес и тогда будет вообще шик. На счет тех настроек что уже есть хотел бы сказать пару слов.
В настройке для юзернейма есть подсказка что не все сайты хорошо воспринимают спецсимволы, но почему - то нет возможности сгенерировать его вообще без спецсимвола.
В пароле наоборот, нет возможности добавить спецсимвол. Сейчас довольно часто их требуют и было бы отлично добавить поле с ними (опциональное) и так же как с датой указывать куда добавить, в начало, конец, середину или рандом.
@spacerange said in [FakePersonGenerator] - модуль для создания случайно несуществующей личности:
@FastSpace Спасибо за модуль! Давно хотел что - то подобное, постоянно приходится брать информацию из сторонних сайтов и бывает что из за них скрипт стопориться. Еще бы адрес и тогда будет вообще шик. На счет тех настроек что уже есть хотел бы сказать пару слов.
В настройке для юзернейма есть подсказка что не все сайты хорошо воспринимают спецсимволы, но почему - то нет возможности сгенерировать его вообще без спецсимвола.
Не все сайты целиком поддерживает это все символы вместе взятые, например тире поддерживают почти все известные мне формы регистрации, но я добавлю эту логику в следующей версии модуля.
В пароле наоборот, нет возможности добавить спецсимвол. Сейчас довольно часто их требуют и было бы отлично добавить поле с ними (опциональное) и так же как с датой указывать куда добавить, в начало, конец, середину или рандом.
Тоже сделаю, но тогда пароль будет не читабельный, только если опционально.
@FastSpace, простая натуральная генерация случайной даты рождения, age - нужный возраст, randomDate - итоговая дата
var age = rand(18, 45);
var dayMilSec = 24 * 60 * 60 * 1000;
var tempDate = new Date();
var nowYear = tempDate.getFullYear();
var maxYear = nowYear - age;
var minYear = maxYear - 1;
var minMilSec = tempDate.setFullYear(minYear) + dayMilSec;
var maxMilSec = tempDate.setFullYear(maxYear) - dayMilSec;
var randomDate = new Date(rand(minMilSec, maxMilSec));
Не нужно парится с количеством дней в месяце:

И с тем был ли уже день рожденья в этом году:

Вариант с возможным днем рождения в текущий день и соблюдением возраста, minAge - минимальный возраст, maxAge - максимальный возраст, age - итоговый возраст, birthDate - итоговая дата рождения
var minAge = 18;
var maxAge = 45;
var dayMilSec = 24 * 60 * 60 * 1000;
var tempDate = new Date();
var nowYear = tempDate.getFullYear();
var minYear = nowYear - maxAge - 1;
var maxYear = nowYear - minAge;
var minMilSec = tempDate.setFullYear(minYear) + dayMilSec;
var maxMilSec = tempDate.setFullYear(maxYear) - dayMilSec;
var birthDate = new Date(rand(minMilSec, maxMilSec));
var age = nowYear - birthDate.getFullYear();
var monthDiff = tempDate.getMonth() - birthDate.getMonth();
if(monthDiff < 0 || (monthDiff === 0 && tempDate.getDate() < birthDate.getDate())){
age--;
};
@FastSpace, тут дело не только в наличии лишних действий, например текущая реализация не позволяет генерировать день рожденья 29 февраля, а такое возможно, так же на максимальный возраст шанс меньше чем на другие, и есть шанс получить возраст меньше указанного


@GhostZ said in [FakePersonGenerator] - модуль для создания случайно несуществующей личности:
@FastSpace, например текущая реализация не позволяет генерировать день рожденья 29 февраля
Невелика потеря
@FastSpace, так же на максимальный возраст шанс меньше чем на другие.
Затачивал в основном на диапазон, поправлю думаю тож
@FastSpace, есть шанс получить возраст меньше указанного
Это я поправлю, но так тоже мало кто страдает фигней. Сгенерить только 18, я такое фиксил в нике и пароле, на возраст пофигу.
Подъехал патч 1.1:
Обновил исходник и модуль.
Great work. Was long waiting for such a module. Thank you very much @FastSpace
Версия 1.2
Обновил модуль и исходник. Потом руки дойдут выдерну отсюда https://github.com/faker-js/faker остальные данные.
Было бы вообще чудесно, если б в BAS и модули автоматом обновляло, чтоб не перекачивать каждый раз.
Спасибо за модуль. Было бы не плохо если добавили возможность назначать тип поля expression
@FastSpace Во всех действиях. Пример при получении никнейма, по сути есть возможность указать год рождения 1 раз при написании скрипта. Либо юзать доп переменную перед действием
