• Как сделать генерацию страниц на основе значений базы данных?

    martin74ua
    @martin74ua Куратор тега MySQL
    Linux administrator
    наймите программиста
    Ответ написан
    Комментировать
  • Какое будет регулярное выражение?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    все придумали до нас https://www.npmjs.com/package/phone-number-validation

    разве что поупражняться для развития.
    /^((\+7|7|8)+([0-9]){10})$/gm
    Ответ написан
    3 комментария
  • HTML,JS,CSS. Можно ли засунуть pdf или doc под спойлер и открывать их при открытии спойлера?

    @mShpakov
    Возможно через iframe
    Ответ написан
    Комментировать
  • Разделить строку на сегменты примерно по 50 символов?

    e-vyushin
    @e-vyushin
    Frontend engineer
    const str = 'Имеется длинная строка. Мне нужно разделить её на сегменты примерно по 50 символов длинной. Но чтобы слова, находящиеся на границе сегментов не разрывались, а помещались в какой-то один сегмент, это важно. Поэтому сегмент может иметь длинну 41, 45, 49 символов, неважно, главное чтобы не разрывались слова и количество символов в сегменте было примерно 50.';
    str.match(/.{1,50}(\s|$)/mig)


    Рассмотрим подробнее регулярное выражение:

    . — находит любой символ. Под любым символом понимается действительно ЛЮБОЙ символ, на любом языке (латиница, кириллица и т. д.), в т. ч. (внимательно) пробелы и переносы строк.

    {1,50} — количество повторений "любого символа". Указываем, что от 1 до 50 раз.

    (\s|$) — любой пробельный символ или конец строки. Т. е. мы явно указываем, что на конце вхождения должен быть пробел или конец строки. Таким образом мы находим разделения слов. Стоит отметить, что \s также найдёт символ табуляции и переноса строки. Так что, если слова разделаются переносом строк или табом, то это тоже будет учитываться.

    mig — без учёта регистра символов, глобальный поиск по всей строке, поддержка многострочных текстов.

    Результатом данного примера является массив всех вхождений:

    5b8c7c0dd9592795075447.jpeg

    /*======== Поправка от 03.09.2017 20:30 ========*/

    . — находит любой символ кроме перевода строки (\n \r \u2028 or \u2029)

    В связи с этим, более актуальное решение будет выглядеть так:
    const str = 'Имеется длинная строка. Мне нужно разделить её на сегменты примерно по 50 символов длинной. Но чтобы слова, находящиеся на границе сегментов не разрывались, а помещались в какой-то один сегмент, это важно. Поэтому сегмент может иметь длинну 41, 45, 49 символов, неважно, главное чтобы не разрывались слова и количество символов в сегменте было примерно 50.';
    str.match(/(.\n*){1,49}(\s|$)/gi)
    Ответ написан
    3 комментария
  • Бывают ли локальные CRM системы?

    usdglander
    @usdglander
    Yipee-ki-yay
    Да. Бывают!
    Ответ написан
    Комментировать
  • Как найти текст игнорируя теги?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Раз у вас javascript, сам бог велел использовать рекурсивный обход DOM, чтобы решить эту задачу нормально. Тогда не нужно будет вообще думать о тегах и их атрибутах. Регулярные выражения нужно использовать там, где текст имеет чёткую заранее известную структуру, это не про произвольный html.

    Код очень простой и понятный: https://jsfiddle.net/alexey_m_ukolov/nfah953z/7/
    Ответ написан
  • Как получить всех потомков брата?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В CSS нет понятия "текущий элемент". Всё указывается только с помощью селекторов.
    <div id='main'>div1</div>
    <div>div2
        <div>div21</div>
        <div>div22</div>
        <div>div23</div>
    </div>

    #main + div > div { ... }
    Ответ написан
    Комментировать
  • Не получается добить регулярное выражение?

    $text = '<w:document xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" mc:ignorable="w14 wp14"><w:body><w:tbl><w:tblpr><w:tblw w:w="10916" w:type="dxa"><w:jc w:val="left"><w:tblind w:w="53" w:type="dxa"><w:tblborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tblborders><w:tblcellmar><w:top w:w="55" w:type="dxa"><w:left w:w="51" w:type="dxa"><w:bottom w:w="55" w:type="dxa"><w:right w:w="55" w:type="dxa"></w:right></w:bottom></w:left></w:top></w:tblcellmar></w:tblind></w:jc></w:tblw></w:tblpr><w:tblgrid><w:gridcol w:w="5458"><w:gridcol w:w="5457"></w:gridcol></w:gridcol></w:tblgrid><w:tr><w:trpr></w:trpr><w:tc><w:tcpr><w:tcw w:w="5458" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>123</w:t></w:r></w:p></w:tc><w:tc><w:tcpr><w:tcw w:w="5457" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:right w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insidev w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insidev></w:insideh></w:right></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>1231</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:trpr></w:trpr><w:tc><w:tcpr><w:tcw w:w="5458" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insideh></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>123</w:t></w:r></w:p></w:tc><w:tc><w:tcpr><w:tcw w:w="5457" w:type="dxa"><w:tcborders><w:top w:val="single" w:sz="2" w:space="0" w:color="000001"><w:left w:val="single" w:sz="2" w:space="0" w:color="000001"><w:bottom w:val="single" w:sz="2" w:space="0" w:color="000001"><w:right w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insideh w:val="single" w:sz="2" w:space="0" w:color="000001"><w:insidev w:val="single" w:sz="2" w:space="0" w:color="000001"></w:insidev></w:insideh></w:right></w:bottom></w:left></w:top></w:tcborders><w:shd w:fill="auto" w:val="clear"><w:tcmar><w:left w:w="51" w:type="dxa"></w:left></w:tcmar></w:shd></w:tcw></w:tcpr><w:p><w:ppr><w:pstyle w:val="Style25"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:lang w:val="en-US"></w:lang></w:rpr><w:t>23</w:t></w:r></w:p></w:tc></w:tr></w:tbl><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>{{qwe}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>{{</w:t></w:r><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:bcs></w:b></w:rpr><w:t>asd</w:t></w:r><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr><w:t>}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr><w:b><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:b></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:b></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:sz w:val="21"><w:szcs w:val="21"><w:lang w:val="en-US"></w:lang></w:szcs></w:sz></w:bcs></w:b></w:rpr><w:t>{{zxc}}</w:t></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr></w:rpr></w:r></w:p><w:p><w:ppr><w:pstyle w:val="Style17"><w:rpr></w:rpr></w:pstyle></w:ppr><w:r><w:rpr><w:b w:val="false"><w:bcs w:val="false"><w:lang w:val="en-US"></w:lang></w:bcs></w:b></w:rpr><w:t>{{check4}}</w:t></w:r></w:p><w:sectpr><w:footerreference w:type="default" r:id="rId2"><w:type w:val="nextPage"><w:pgsz w:w="11906" w:h="16838"><w:pgmar w:left="567" w:right="423" w:header="0" w:top="1077" w:footer="709" w:bottom="1259" w:gutter="0"><w:pgnumtype w:fmt="decimal"><w:formprot w:val="false"><w:textdirection w:val="lrTb"><w:docgrid w:type="default" w:linepitch="360" w:charspace="0"></w:docgrid></w:textdirection></w:formprot></w:pgnumtype></w:pgmar></w:pgsz></w:type></w:footerreference></w:sectpr></w:body></w:document>';
    $regex = "/.*(<w:p>.*{{zxc}}.*?<\/w:p>)/";
    $m = [];
    
    preg_match($regex, $text, $m);
    echo $m[1];

    https://regex101.com/r/qGucnQ/9 <-- та же самая регулярка, она норм работает.

    P.S. В Full Match попадает всё то, что соответствует вообще регулярке, но запоминается только то, что попадает в Group 1.
    Ответ написан
    1 комментарий