Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?



  • Здравствуйте!
    Вопрос в следующем.
    Есть большая строка - которую спарсил с сайта госзакупок.
    Все вроде бы нормально, Но я хотел бы переделать телефоны - но там дальше в этой же переменной идут емайлы - которые содержат например знак тире - который мне нужно обработать только в телефоне, а не в емайле.

    Вопрос - как сделать разбивку этой спаршенной переменной на 2 разные переменные (телефон + емайл)? Возможно ли это?

    Вот пример данных, которые нужно пересортировать - т.е. то что я могу сейчас собрать..

    7-495-0000000                                                                                         mo@msk-nt.ru
    7-495-5870777                                                                                         arezvanova@licard.com
    8-968-279000                                                                                         druchinina.iv@zao-agrokomplex.ru
    8(4932)35-98-05                                                                                         iv5000@rambler.ru
    7-812-3273747                                                                                         Kochergo.Elena@bsspharm.ru
    7-812-7037512                                                                                         4920687@mail.ru
    7-812-3278037                                                                                         atlantis-spb@inbox.ru
    

    тут как раз примеры того что тире есть и в номере телефона и в емайле... и не хотелось бы портить емайл, если я сделаю замену тире в телефоне...?
    Прошу помочь, как это возможно реализовать. Заранее спасибо.



  • @brotok Перебираем варианты? В топике созданном вами с 88 пробелами и табами есть решение.
    табы



  • @brotok said in Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?:

    Здравствуйте!
    Вопрос в следующем.
    Есть большая строка - которую спарсил с сайта госзакупок.
    Все вроде бы нормально, Но я хотел бы переделать телефоны - но там дальше в этой же переменной идут емайлы - которые содержат например знак тире - который мне нужно обработать только в телефоне, а не в емайле.

    Вопрос - как сделать разбивку этой спаршенной переменной на 2 разные переменные (телефон + емайл)? Возможно ли это?

    Вот пример данных, которые нужно пересортировать - т.е. то что я могу сейчас собрать..

    7-495-0000000                                                                                         mo@msk-nt.ru
    7-495-5870777                                                                                         arezvanova@licard.com
    8-968-279000                                                                                         druchinina.iv@zao-agrokomplex.ru
    8(4932)35-98-05                                                                                         iv5000@rambler.ru
    7-812-3273747                                                                                         Kochergo.Elena@bsspharm.ru
    7-812-7037512                                                                                         4920687@mail.ru
    7-812-3278037                                                                                         atlantis-spb@inbox.ru
    

    тут как раз примеры того что тире есть и в номере телефона и в емайле... и не хотелось бы портить емайл, если я сделаю замену тире в телефоне...?
    Прошу помочь, как это возможно реализовать. Заранее спасибо.

    Отвечая на ваши вопросы создаётся впечатление голосового управления BAS :D

    Раз уж я пишу готовое решение сам, то напишу сразу итоговый вариант, вряд ли вы захотите разбираться как это решение работает:

    "+7" + (([[FOREACH_DATA]].replace(/\s+/g, " ").split(" ")[0]).replace(/\D/g, "")).slice(-10) + " " + ([[FOREACH_DATA]].replace(/\s+/g, " ").split(" ")[1])
    

    Это решение превратит данные:

    7-495-0000000                                                                                         mo@msk-nt.ru
    7-495-5870777                                                                                         arezvanova@licard.com
    8-968-279000                                                                                         druchinina.iv@zao-agrokomplex.ru
    8(4932)35-98-05                                                                                         iv5000@rambler.ru
    7-812-3273747                                                                                         Kochergo.Elena@bsspharm.ru
    7-812-7037512                                                                                         4920687@mail.ru
    7-812-3278037                                                                                         atlantis-spb@inbox.ru
    

    в такой вид:

    +74950000000 mo@msk-nt.ru
    +74955870777 arezvanova@licard.com
    +78968279000 druchinina.iv@zao-agrokomplex.ru
    +74932359805 iv5000@rambler.ru
    +78123273747 Kochergo.Elena@bsspharm.ru
    +78127037512 4920687@mail.ru
    +78123278037 atlantis-spb@inbox.ru
    

    0_1567851649235_6f909469-c9cf-4fda-b4bf-08fe0ec02296-изображение.png

    Тестовый скрипт


    Если вы всё же решите узнать что делает указанный код - просто спросите и я распишу весь алгоритм по шагам.



  • @fox said in Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?:

    @brotok said in Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?:

    Здравствуйте!
    Вопрос в следующем.
    Есть большая строка - которую спарсил с сайта госзакупок.
    Все вроде бы нормально, Но я хотел бы переделать телефоны - но там дальше в этой же переменной идут емайлы - которые содержат например знак тире - который мне нужно обработать только в телефоне, а не в емайле.

    Вопрос - как сделать разбивку этой спаршенной переменной на 2 разные переменные (телефон + емайл)? Возможно ли это?

    Вот пример данных, которые нужно пересортировать - т.е. то что я могу сейчас собрать..

    7-495-0000000                                                                                         mo@msk-nt.ru
    7-495-5870777                                                                                         arezvanova@licard.com
    8-968-279000                                                                                         druchinina.iv@zao-agrokomplex.ru
    8(4932)35-98-05                                                                                         iv5000@rambler.ru
    7-812-3273747                                                                                         Kochergo.Elena@bsspharm.ru
    7-812-7037512                                                                                         4920687@mail.ru
    7-812-3278037                                                                                         atlantis-spb@inbox.ru
    

    тут как раз примеры того что тире есть и в номере телефона и в емайле... и не хотелось бы портить емайл, если я сделаю замену тире в телефоне...?
    Прошу помочь, как это возможно реализовать. Заранее спасибо.

    Отвечая на ваши вопросы создаётся впечатление голосового управления BAS :D

    Раз уж я пишу готовое решение сам, то напишу сразу итоговый вариант, вряд ли вы захотите разбираться как это решение работает:

    "+7" + (([[FOREACH_DATA]].replace(/\s+/g, " ").split(" ")[0]).replace(/\D/g, "")).slice(-10) + " " + ([[FOREACH_DATA]].replace(/\s+/g, " ").split(" ")[1])
    

    Это решение превратит данные:

    7-495-0000000                                                                                         mo@msk-nt.ru
    7-495-5870777                                                                                         arezvanova@licard.com
    8-968-279000                                                                                         druchinina.iv@zao-agrokomplex.ru
    8(4932)35-98-05                                                                                         iv5000@rambler.ru
    7-812-3273747                                                                                         Kochergo.Elena@bsspharm.ru
    7-812-7037512                                                                                         4920687@mail.ru
    7-812-3278037                                                                                         atlantis-spb@inbox.ru
    

    в такой вид:

    +74950000000 mo@msk-nt.ru
    +74955870777 arezvanova@licard.com
    +78968279000 druchinina.iv@zao-agrokomplex.ru
    +74932359805 iv5000@rambler.ru
    +78123273747 Kochergo.Elena@bsspharm.ru
    +78127037512 4920687@mail.ru
    +78123278037 atlantis-spb@inbox.ru
    

    0_1567851649235_6f909469-c9cf-4fda-b4bf-08fe0ec02296-изображение.png

    Тестовый скрипт


    Если вы всё же решите узнать что делает указанный код - просто спросите и я распишу весь алгоритм по шагам.

    Спасибо вам большое за помощь! Если можете - то распишите подробнее, как это работает. Единственное - у вас в последнем примере +7, а мне нужно просто 7 - я так понимаю это начало кода за это отвечает? Или другая часть? Кажется очень сложно если честно... никогда подобным раньше не занимался..



  • @brotok said in Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?:

    Спасибо вам большое за помощь! Если можете - то распишите подробнее, как это работает. Единственное - у вас в последнем примере +7, а мне нужно просто 7 - я так понимаю это начало кода за это отвечает? Или другая часть? Кажется очень сложно если честно... никогда подобным раньше не занимался..

    Удивили. Большинству необходим лишь готовый ответ в тестовом скрипте. (очень многие скидывают тз в личку с фразой "помогите" :D)

    Для наглядности использовал по максимуму стандартные действия BAS и подписал каждое действие комментарием

    Тестовый скрипт



  • @fox said in Как разбить одну переменную на 2 переменных, если знаю разделитель в тексте (88 пробелов)?:

    Для наглядности использовал по максимуму стандартные действия BAS и подписал каждое действие комментарием

    Тестовый скрипт

    За такие примеры всегда Like
    Жаль пока что нет отдельного раздела с такими примерами или поиска по форуму (но для этого придется к каждому примеру добавлять уникальное ключевое слово, и все равно раздел - вариант по лучше)



  • @elmore Сортировать вы согласны? =) Тут лайвхаков и неожиданных реализаций хоть ж,, ешь очень много и иногда в теме с нелепицей вдруг всплывает что вкусное. Я по началу даже базу себе создал :D ссылка контент чо там и как.



  • @tts9 Я себе тоже сохраняю ссылкой или подписанным файлом, если что-то попадается. Но т.к. дизайн/функционал форума мне не удобны, захожу не часто и многое остается не замеченным.


Log in to reply