• Как с помощью регулярных выражений проверить email?

    @InoMono
    Я бы не пытался сделать это самому.
    Люди уже ломали головы по этому поводу.
    И регулярное выражение, решающее проблему (решающее, с учетом разных нюансов), очень даже не простое.
    (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
    )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
    \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
    ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ 
    \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
    31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
    ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
    (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
    (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
    |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
    ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
    r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
     \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
    ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
    )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
     \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
    )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
    )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
    *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
    |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
    \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
    \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
    ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
    ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
    ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
    :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
    :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
    :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
    [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] 
    \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
    \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
    
    @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
    (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
    )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
    :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
    \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
    \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
    ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
    :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
    ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
    .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
    ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
    [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
    r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] 
    \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
    |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
    00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
    .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
    ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
    :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
    (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
    \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
    ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
    ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
    ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
    ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
    \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
    ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
    ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
    :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
    \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
    [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
    ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
    ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
    ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
    ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
    
    @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
     \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
    ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
    )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
    (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
    \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
    \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
    "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
    *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
    +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
    .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
    |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
    ?:\r\n)?[ \t])*))*)?;\s*)


    Взято отсюда www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

    Хотя есть и упрощенные версии.
    Ответ написан
    6 комментариев
  • Где найти API для plesk panel?

    opium
    @opium
    Просто люблю качественно работать
    Ответ написан
    Комментировать
  • Из чего складывается "вклад" на тостере?

    @386DX
    1 балл за "решение" 1 балл за 4 лайка и сколько-то за вопрос.
    Знание совершенно бесполезное, так как администрация произвольным образом уменьшает или добавляет баллы (при мне 3 раза).
    Ответ написан
    9 комментариев
  • Из чего складывается "вклад" на тостере?

    gluck59
    @gluck59
    Виртуальный глюк
    Абсолютно бесполезная пузомерка, работает от левой ноги по понедельникам.
    Не забивайте голову.
    Ответ написан
    Комментировать
  • В чём ошибка подключения к удалённой mySQL?

    @karminski
    Senior React.JS Developer
    Скорее всего запрет на подключение к удалённой БД извне (т.е. с других серверов). Это правильная стратегия - меньше шансов на взлом вашей БД. Если же очень нужно, нужно проверять, чтобы в удаленной БД был пользователь 'marslo88'@'92.53.114.3', а не только 'marslo88'@'localhost'.
    Ответ написан
    Комментировать
  • Почему возникает ошибка функции array_search?

    e_svirsky
    @e_svirsky
    Web Developer
    Комментировать
  • Возможно ли использовать для такой задачи регулярные выражения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В общем случае - нет.
    иванольгаиванолег
    Предложенные регулярки выделят подстроку "иванол".
    Регулярка не знает понятия "имя", она работает только со строками.
    Ответ написан
    Комментировать
  • Как посчитать все запятые в строке?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • Как посчитать все запятые в строке?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    А на чистом javascript подойдет?
    let str1="fff dfd,gg,hh,fdgdf fgd fgdfg,,,"
    str1.replace(/[^,]/g,"").length
    6

    или так
    str1.split('').filter(function(value){return value==','}).length
    6
    Ответ написан
    2 комментария
  • Как вставить текст, используя регулярные выражения?

    alsopub
    @alsopub
    Вот пример, вставляет текст между [ ... ] - codepen.io/anon/pen/JKddNZ
    $('div').text($('div').text().replace(/(\[).*?(\])/, '$1 some text $2'));

    Между указанными вами символы вставлять что-либо бессмысленно - все это комментарий.
    Ответ написан
    24 комментария
  • Как организовать выборку на JQuery?

    Stalker_RED
    @Stalker_RED
    Выбрать по классу не проблема:
    $('div.class')

    А дальше писать фильтр, который проверит отступы. Это может оказаться довольно тяжелой операцией, если таких элементов много

    $('div.class').each(function(){
      var elem = $(this)
      if (elem.css('margin-left') < 50) {
        ...
      }
    })
    Ответ написан
    1 комментарий
  • Как остановить функцию на JQuery?

    Stalker_RED
    @Stalker_RED
    Разделите первую функцию на две, и вызывайте только тот кусок, который нужен.

    Предположим, что изначально у вас такая функция
    function makeGreenAndCreateInnerDiv( elem ){
    	elem.append('<div></div>')
      elem.css('background', 'green')
    }
    демо: https://jsfiddle.net/6mtd38cx/

    Разделяем на две части https://jsfiddle.net/6mtd38cx/1/
    createInnerDiv() вызывается дважды, а makeGreen() - один раз
    Ответ написан
  • Как вырезать часть строки на JQuery?

    @DP-Studio
    20 лет веб-разработки
    javascript.ru/basic/regular-expression+

    /^rgb\((.*)\)/ в $1 будет (без скобок), если не глючу ночером....

    var str = "rgb(255, 150, 117) 0px 0px 5px 2px";
    var subresult = str.match( /^rgb\((.*)\)/)/ );
    var result = subresult[1];
    Ответ написан
    2 комментария
  • Как написать алгоритм перебора всех возможных комбинаций символов?

    R0dger
    @R0dger
    Laravel/Yii/2 AngularJs PHP RESTful API
    ну что то в этом роде... на вход число подаете...
    function emailEncode($i)
      {
        $alphabet = "abcdefghijklmnopqrstuvwxyz0123456789._-";
        $alphabet = str_split($alphabet);
        if ($i == 0) 
          return $alphabet[0];
        $result = '';
        $base = count($alphabet);
        while ($i > 0)
        {
          $result[] = $alphabet[($i % $base)];
          $i = floor($i / $base);
        }
        $result = array_reverse($result);
        return join("", $result);
      }
    Ответ написан
    3 комментария
  • Почему не корректно работает jquery hover?

    Punkie
    @Punkie
    Потому что у вас каждый первый li имеет бОльший размер, чем все остальные. Он банально перекрывает предыдущий синий блок, изза чего вы не можете навести на него курсор.
    0c4e6006219c4ea184bb635ea8dfce4e.png

    А на локальном скорее всего работает только потому, что завис кеш с версией цсс, в которой этот li был нормальных размеров.
    Ответ написан
    4 комментария
  • Почему cookie можно создавать только в начале?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    для начала вам надо разобраться что такое куки. Как куки передаются на клиент. Что такое заголовки и тело HTTP запросов и ответов. И тогда все встанет на свои места. Ну а что бы небыло проблем - почитать про управление буферизацией вывода в PHP.

    Чем куки отличаются от сессии в PHP?
    Ответ написан
    Комментировать
  • Для совсем новичка в программировании php или ruby?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ruby - надо знать английский и переходить на unix-like операционки (linux, bsd, mac os).

    PHP - можно ничего не знать, задачи всеравно будут.

    Профит учить Ruby если все же хватит сил - у Ruby комьюнити есть определенная культура, в частности это самое любящее тестирование и TDD техники комьюнити из всех. В PHP с этим в среднем гораздо хуже... Так что решайте сами.

    С Ruby есть риск надолго стать пленником RoR, с PHP - стать пленником устаревших статей, разных CMS-кой аля джумлы или друпалы, словом... фильтровать информацию от треша сложнее.
    Ответ написан
    3 комментария
  • Как организовать видеотрансляцию на сайте?

    BOOMER_74
    @BOOMER_74
    Full-Stack разработчик
    WebRTC? (1 и 2, далее сами)
    Ответ написан
    Комментировать
  • PHP и MySql. Куда идем?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Удаляются функции mysql_* (точнее уже удалены в PHP 7).
    На замену есть функции mysqli_* с похожим синтаксисом, класс MySQLi и PDO.
    Никто никуда не уходит, просто меняются инструменты работы с БД (при этом mysqli_* очень похожи на устаревшие аналоги). MySQL как БД никуда не девается.
    Ответ написан
    Комментировать