0

i'm simply trying to split cloned mark (banner from gulp). Anyway it's simple text witch will need to get cleared from any clones. I should to remove one clone, so at first i have to split text.

It seems like regexp value working good: https://regex101.com/r/6D456D/1, but JavaScript don't wonna to split my text =(

Please show to me where is my mistake?

var regexp = /^\/\*!BANNERSTART[\s\S]*?BANNEREND\*\/(?:\\n){2}/gmi;
var txt = "/*!BANNERSTART\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\n| Информация о дистрибутиве : Freshbroccoli\t\t\t\t\t\t\t\t\t\n|==============================================================================\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Версия:         0.0.1\t\t\t\t\t\t\t\t\t\t\t\n| Лицензия:       ISC\t\t\t\t\t\t\t\t\t\t\t\n| Описание:       Свежий, переосмысленный сайт Freshbroccoli\t\t\t\t\t\t\t\t\t\t\n| Компания:       ООО БРОККОЛИ\t\t\t\t\t\t\t\t\t\n| Локация:        Россия, Москва, 2-я Звенигородская 13/43\t\t\t\t\t\t\t\t\t\n| Email:          info@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\n| Телефон:        +7(495)108-07-98\t\t\t\t\t\t\t\t\t\t\n| Файл изменен:   Wed Mar 22 2017 18:39:44 GMT+0300 (MSK)\t\t\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|------------------------------------------------------------------------------\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Автор:    Андрей Дьяченко (Front-end разработчик)\t\t\t\t\t\t\t\t\t\t\t\t\n| Локация:  Россия, Москва\t\t\t\t\t\t\t\t\t\t\t\n| Email:    a.dyachenko@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\t\n| Skype:    tux_will\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\nBANNEREND*/\n\n/*!BANNERSTART\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\n| Информация о дистрибутиве : Freshbroccoli\t\t\t\t\t\t\t\t\t\n|==============================================================================\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Версия:         0.0.1\t\t\t\t\t\t\t\t\t\t\t\n| Лицензия:       ISC\t\t\t\t\t\t\t\t\t\t\t\n| Описание:       Свежий, переосмысленный сайт Freshbroccoli\t\t\t\t\t\t\t\t\t\t\n| Компания:       ООО БРОККОЛИ\t\t\t\t\t\t\t\t\t\n| Локация:        Россия, Москва, 2-я Звенигородская 13/43\t\t\t\t\t\t\t\t\t\n| Email:          info@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\n| Телефон:        +7(495)108-07-98\t\t\t\t\t\t\t\t\t\t\n| Файл изменен:   Wed Mar 22 2017 18:39:34 GMT+0300 (MSK)\t\t\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|------------------------------------------------------------------------------\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Автор:    Андрей Дьяченко (Front-end разработчик)\t\t\t\t\t\t\t\t\t\t\t\t\n| Локация:  Россия, Москва\t\t\t\t\t\t\t\t\t\t\t\n| Email:    a.dyachenko@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\t\n| Skype:    tux_will\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\nBANNEREND*/\n";

var array = txt.split(regexp);
console.log(array.length); // => Waiting for arr.length will be 2, not 1 =(
north.inhale
  • 483
  • 2
  • 9
  • 20

2 Answers2

0

Part recognized by split method does not go to an array, you need to update your regexp or use other methods;

var str = 'hello ;world ;'
var re = /\s*;\s*/;
var nameList = names.split(re);

Will create ['hello', 'world'] not ['hello ;','world ;'];

What you need is String.match() method.

var nameList = names.match(re);

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/match

Anton Stepanenkov
  • 1,026
  • 8
  • 15
  • Yes i need to update my regexp, but i don't know what updates i should make to split it. PS: In gulp code this banner look as: [http://storage3.static.itmages.ru/i/17/0323/h_1490253974_9867519_68b98c25c6.png](http://storage3.static.itmages.ru/i/17/0323/h_1490253974_9867519_68b98c25c6.png) – north.inhale Mar 23 '17 at 07:24
0

I found a solution using a forward positive and negative regular expression at the same time with no greedy search https://regex101.com/r/6D456D/5

var regexp = /(?=\/\*!BANNERSTART)(?!BANNEREND\*\/(?:\\n){0,2})[\s\S]*?/gmi;
var txt = "/*!BANNERSTART\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\n| Информация о дистрибутиве : Freshbroccoli\t\t\t\t\t\t\t\t\t\n|==============================================================================\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Версия:         0.0.1\t\t\t\t\t\t\t\t\t\t\t\n| Лицензия:       ISC\t\t\t\t\t\t\t\t\t\t\t\n| Описание:       Свежий, переосмысленный сайт Freshbroccoli\t\t\t\t\t\t\t\t\t\t\n| Компания:       ООО БРОККОЛИ\t\t\t\t\t\t\t\t\t\n| Локация:        Россия, Москва, 2-я Звенигородская 13/43\t\t\t\t\t\t\t\t\t\n| Email:          info@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\n| Телефон:        +7(495)108-07-98\t\t\t\t\t\t\t\t\t\t\n| Файл изменен:   Wed Mar 22 2017 18:39:44 GMT+0300 (MSK)\t\t\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|------------------------------------------------------------------------------\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Автор:    Андрей Дьяченко (Front-end разработчик)\t\t\t\t\t\t\t\t\t\t\t\t\n| Локация:  Россия, Москва\t\t\t\t\t\t\t\t\t\t\t\n| Email:    a.dyachenko@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\t\n| Skype:    tux_will\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\nBANNEREND*/\n\n/*!BANNERSTART\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\n| Информация о дистрибутиве : Freshbroccoli\t\t\t\t\t\t\t\t\t\n|==============================================================================\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Версия:         0.0.1\t\t\t\t\t\t\t\t\t\t\t\n| Лицензия:       ISC\t\t\t\t\t\t\t\t\t\t\t\n| Описание:       Свежий, переосмысленный сайт Freshbroccoli\t\t\t\t\t\t\t\t\t\t\n| Компания:       ООО БРОККОЛИ\t\t\t\t\t\t\t\t\t\n| Локация:        Россия, Москва, 2-я Звенигородская 13/43\t\t\t\t\t\t\t\t\t\n| Email:          info@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\n| Телефон:        +7(495)108-07-98\t\t\t\t\t\t\t\t\t\t\n| Файл изменен:   Wed Mar 22 2017 18:39:34 GMT+0300 (MSK)\t\t\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|------------------------------------------------------------------------------\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n| Автор:    Андрей Дьяченко (Front-end разработчик)\t\t\t\t\t\t\t\t\t\t\t\t\n| Локация:  Россия, Москва\t\t\t\t\t\t\t\t\t\t\t\n| Email:    a.dyachenko@freshbroccoli.ru\t\t\t\t\t\t\t\t\t\t\t\n| Skype:    tux_will\t\t\t\t\t\t\t\t\t\t\t\n|\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n|==============================================================================\nBANNEREND*/\n";

var array = txt.split(regexp);
console.log(array.length); // => Waiting for arr.length will be 2
north.inhale
  • 483
  • 2
  • 9
  • 20