• Как осуществить валидацию полей формы - email и телефон - именно через js?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Первая ссылка в гугле - emailregex.com
    // Javascript: email
    /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i

    C телефоном чуть интереснее, потому что самих форматов масса. Смотрим сюда и тюним под свои требования:
    // Javascript: phone
    ^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
    Ответ написан
    1 комментарий
  • Как сделать такой прогресс бар?

    lazalu68
    @lazalu68
    Salmon
    Вариантов реализации - очень много)

    Я, например, думаю в сторону самого простого, самого надежного и самого кроссбраузерного варианта создания таких штук, а именно - разбиения исходных картинок на минимально возможные части с последующим впиливанием их в слои. Например так: фон (background) будет нижним слоем, полоска (fill) - посередине, и рамка (frame) будет верхним слоем. Для каждого из этих элементов берем такие части изображений из исходников, которых будет достаточно для того чтоб воспроизвести соответствующий элемент для любой ширины основного блока, то есть паттерны. Ну и хвосты еще (левые и правые части) для тех элементов, оформление которых не может быть выполнено паттернами.

    Для background паттерн получился такой:
    1
    Если вы умеете пользоваться графическими редакторами, можно осветлить fill и всю тень сымитировать на изображениях для frame. Если нет, то придется еще вырезать хвосты, то есть левую и правую часть для fill. Мне помогли, у меня вроде бы вся тень успешно перенесена в frame, так что для fill я использую только паттерн:
    2-2
    С frame такое не прокатит, у нее есть левые и правые части, которые придется оформлять раздельно. Левая, паттерн и правая часть соответственно получились такие:
    3-13-23-3
    Осталось придумать как будет происходить анимация fill, то есть как раз анимация прогресс бара. Я решил, что самым простым вариантом будет просто анимировать ширину fill: 0% ширина будет соответствовать 0% прогресса, 100% ширина будет соответствовать 100% прогресса, все прозрачно)

    Все это раскидываете по слоям, добиваетесь правильного отображения, пишете мелкий интерфейс взаимодействия с прогресс баром и все)

    Собственно, пример (без интерфейса взаимодействия с прогресс баром).

    Пример работает нормально начиная с IE8, IE7 начинает баловаться с box-sizing и все блоки разъезжаются. Можно искать решение, а можно забить, как я. Кстати, на IE8 пример запустить можно только открыв сохраненную его копию, т.к. в отличие от моего bloody-bar'а JSFiddle не поддерживает IE8 xD

    В примере явно указана ширина для контейнера с баром только для того чтоб показать, что бар без проблем изменяет ширину.

    Вот если честно, не представляю как парни предлагают анимировать бар через @keyframes 0_0 С баром же надо взаимодействовать, это сделает JS.

    И конечно ни в коем случае не смотрите пример до тех пор, пока не реализуете сами, потеряете экспу))
    Ответ написан
    2 комментария
  • Как реализовать функцию inArray?

    DirecTwiX
    @DirecTwiX
    "display: flex;" уже предлагали?
    function inArray(value, array) {
      if (!array)
        array = this;
      for (var i = 0; i < array.length; i++) {
        if (value === array[i]) {
          return true;
        } 
      }
      return false;
    }
    Array.prototype.inArray = inArray;
    console.log([1, 10, 145, 8].inArray(10));
    console.log(inArray(100, [1, 10, 145, 8]));
    Ответ написан
    2 комментария
  • Как реализовать функцию inArray?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Array.prototype.inArray = function (item) {return this.indexOf(item) > -1}

    Только, патчить глобальные объекты - плохая практика, не стоит этого делать за пределами образовательных проектов.
    Ну и вашу функцию стоит переписать на использование indexOf(), ни к чему изобретать велосипед.
    Ответ написан
    3 комментария
  • Ошибки при запуске npm start?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Сначала npm install сделайте
    Ответ написан
    2 комментария
  • Зачем так извращаться?

    Изначально пишется нормальний код, а уже потом при помощи тулзов он ужимается. Можно легко проделать обратноє действие, в FF есть пунктик "Prettify Source" в девелоперской консоле. Думаю в chrome тоже есть что-то похожее.
    Ответ написан
    Комментировать
  • Как добавить файлы в другой свой репозиторий на Github?

    v_decadence
    @v_decadence
    Насколько я понимаю, есть два вида ключей: deployment для доступа к определенному репозиторию и ключ всего аккаунта для доступа к любому хранилищу. deployment не могут повторяться. Так что либо делать каждый раз новый, либо использовать свой аккаунт-ключ.

    К тому же, для push ключ должен иметь установленную галочку "Allow write access" (Can this key be used to push to this repository? Deploy keys always have pull access)

    GitHub supports both Account Level public keys, and Project Level keys (aka Deploy Keys). Not allowing reuse of Account Level keys makes sense, but I claim that not allowing it for Deploy Keys doesn't. My one Account Level key allows access to all my projects, so why couldn't I have a Deploy Key that allows access to some of my projects?
    Ответ написан
    6 комментариев
  • Где взять макеты psd, сверстав которые можно показать в портфолио?

    dimasmagadan
    @dimasmagadan
    1 любая биржа (реальные задачи с макетами)
    2 сайты-портфолио дизайнеров
    3 сайты вроде behance, dribbble, awwwards.com
    4 google/yandex - "сложный макет psd"
    5 тостер - такой вопрос тут периодически появляется
    Ответ написан
    Комментировать