• Какое регулярное выражение подойдет для проверки номера телефона?

    @kudry
    Тоже столкнулся с проблемой валидизации телефонных номеров.
    Телефоны берутся с участников вебинаров, на которые записываются люди из очень разных стран.
    Соответственно, со всеми предыдущими схемами возникают проблемы:
    1) а что если телефон с Украины (не +7-, а +38-)? А из Казахстана? А США (1-)? А Уганда ( +233-)? (из Уганды, правда, пока слушателей не было, но все впереди).
    2)В разных местностях приняты самые невообразимые способы разбиения телефона на группы цифр:
    8(8888)8-88-88-88 например. или 888(88)88888-888. Да и какие угодно могут возникнуть в будущем.
    Поэтому вариант с "дефолтным разбиением типа "8(888)888-88-88 ну совершенно не катит.

    Соответственно, я придумал следующий валидатор:
    1) В начале могут быть пробелы, после них может быть "+" (а может и не быть)
    2) Дальше должна идти группа цифр в количестве от 10 до 14 (мне нужны номера в международном формате; но если кому-то нужны более короткие - можно исправить диапазон длин).
    3) Поскольку я не знаю, как люди группируют цифры - до и после каждой цифры может быть один из 8 знаков ("-", " ", "_", "(", ")", ":", "=", "+"). Это значит, что между двумя цифрами могут быть любые два из этих знаков.

    В итоге получилось очень коротко и понятно )) :
    /^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/

    Съедает следующие телефоны:
    +7(903)888-88-88
    8(999)99-999-99
    +380(67)777-7-777
    001-541-754-3010
    +1-541-754-3010
    19-49-89-636-48018
    +233 205599853
    Ответ написан
    1 комментарий
  • Как сформировать ссылку с параметрами в node.js?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    function queryString(params) {
      return Object.keys(params).map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join('&');
    }


    или https://www.npmjs.com/search?q=query%20string
    Ответ написан
    Комментировать
  • Человекопонятные даты в js на русском языке?

    DenZzeuro
    @DenZzeuro
    Мотоциклы, кофе
    new Date().toLocaleString('ru', {
    			  year: 'numeric',
    			  month: 'long',
    			  day: 'numeric'
    			});
    Ответ написан
    2 комментария
  • Пет проект Джуна на React?

    lukoie
    @lukoie
    сделай соцсеть спиртных напитков, чтобы можно было отзывы ставить, лайкать, добавлять в избранное(хочу попробовать, пробовал, любимый напиток). С подразделами, например для пива, вина. Чтобы можно было скрывать юзеру не интересные разделы, например водки или шампанские вина. С разделом по самоделкам, с мультиюзерным бложиком.
    А если сразу будешь с заделом на реакт нейтив - то вообще молодца.

    А можешь сделать например полную копию тостера : ) Есть же уже весь фронт перед глазами.

    Можешь сделать полезную штуку для работы с апи - связать SimpleNote c блогом на Вордпресс. Так что в твоем интерфейсе указываем свой симплноут и например раздел или тег, который будет залетать в блог, и там же доступ до своего ВП блога и раздел куда будет залетать пост. И синхронизячить - пингать записную книжку, и когда там появилась новая запись в нужном теге - постить в ВП бложик.

    Можешь сделать систему тикетов, и придумать для какого-то бизнеса, например для жека или типа црмка для почтальонов.
    Ответ написан
    1 комментарий
  • Как устранить ошибку Error: "env(safe-area-inset-right)" is not a number for `max' в Fancybox3?

    @ziqq
    Добавьте 2 миксина

    @function max($numbers...) {
      @return m#{a}x(#{$numbers});
    }
    
    @function min($numbers...) {
      @return m#{i}n(#{$numbers});
    }
    Ответ написан
    2 комментария
  • Какие есть "лучшие из лучших" библиотеки JS?

    LightAir
    @LightAir
    LA
    Мой небольшой список. Большинство из этого довольно часто использую.

    three.js - 3D графика
    sweetalert - Всплывающие предупреждения
    snapsvg - Анимация/манипуляция SVG
    pixijs - 2D движок с поддержкой WebGL
    Nape Physics Engine - 2D движок физики
    Clusterize.js - Плагин для отображения больших объёмов данных
    jsplumb - Визуализация связей
    toastr - Симпатичные уведомления
    elFinder - Файловый менеджер
    jQuery-Tabledit - Инлайн редактор таблиц
    Iconate.js - Трансформация/анимация иконок
    Paper.js - Фрейм для работы с векторной графикой
    Vue.js - Серьёзный конкурент Angular.js =)
    socket.io - Хорошая библиотека для работы с сокетами
    InstantClick - Предзагрузка страниц при наведении курсора на ссылку
    spin.js - Название говорит само за себя. Spin
    sigmajs - Построение/отображение графов
    validate - Валидатор форм
    select2 - Кастомный select с поиском, тегами и прочими полезностями
    Chart.js - Визуализация данных. Проще говоря графики на HTML 5
    Ответ написан
    Комментировать
  • Что насчет smart-grid?

    dimovich85
    @dimovich85
    https://u-academy.net/
    Все проекты на ней делаю - рекомендую!
    Ответ написан
    Комментировать
  • Как кастомизировать dots в Slick Slider?

    dpigo
    @dpigo
    Front-end developer
    Dots в примерах с их сайта реализованы с помошью текстового символа, который описывается в селекторе .slick-dots li button:before
    .slick-dots li button:before {
     font-family: 'slick';
      font-size: 6px;
      line-height: 20px;
      position: absolute;
      top: 0;
      left: 0;
      width: 20px;
      height: 20px;
      content: '•'; /* <-- Вот этот символ */
      text-align: center;
      opacity: .25;
      color: black;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }


    Соответственно чтобы изменить обводку нужно либо играться с -webkit-text-stroke и реализовывать фоллбэк с помощью text-shadow (плохой вариант), либо заменить этот символ на SVG изображение и задавать цвета уже в SVG (хороший вариант).

    Вариант с text-stroke: https://jsfiddle.net/mxssjfou/2/
    Вариант с SVG: https://jsfiddle.net/mxssjfou/3/

    PS задавать свою тему dots, отличную от той, что берется в примере нужно с помощью свойства dotsClass: 'my-dots-class' в настройках инициализации, но если нужно только слегка изменить - лучше скопировать CSS из темы и править где надо.
    Ответ написан
    1 комментарий