Как научить BAS переделывать строку

Поддержка
  • @denis_krsk Я нечего не понимаю в регулярных выражениях :(

  • @nikalasss Вот исчерпывающая статья в вики https://ru.wikipedia.org/wiki/Регулярные_выражения Какой результат нужен на выходе?

  • @denis_krsk Нужно чтобы из всех этих результатов:
    9M9J WDRB HQ39 HQP1
    9M9JWDRBHQ39HQP1
    9m9j-wdrb-hq39-hqp1
    И ихних комбинаций, выход результат 9M9J-WDRB-HQ39-HQP1
    (это пример, текст может быть из других букв и цифр)

  • @nikalasss said in Как научить BAS переделывать строку:

    9m9j-wdrb-hq39-hqp1

    В выполнить код используйте этот код ( на кубиках писать мне лень)

    var str='9m9j-wdrb-hq39-hqp1'; //Строка в которой ищем
    var regEx=/(?:^|\s)(\S{4,4})[\s-]?(\S{4,4})[\s-]?(\S{4,4})[\s-]?(\S{4,4})(?:\s|$)/;
    var text=str.match(regEx);
    if(text.length==5){
    	text=text.slice(1).join('-').toUpperCase();
    	log(text)
    }else{
    	log('Строка '+str+' не подходит под регулярное выражение')
    };
    
  • @denis_krsk А как мне его добавить в скрипт? Я не знаю Java xD

  • @nikalasss В выполнить код копируете все это.
    Ваша строка [[YOUR_STRING]] - ставите свою переменную из БАСа.

    var str=[[YOUR_STRING]]; //Строка в которой ищем
    var regEx=/(?:^|\s)(\S{4,4})[\s-]?(\S{4,4})[\s-]?(\S{4,4})[\s-]?(\S{4,4})(?:\s|$)/;
    var text=str.match(regEx);
    if(text && text.length==5){
       [[YOUR_STRING]]=text.slice(1).join('-').toUpperCase();
       log([[YOUR_STRING]])
    }else{
       log('Строка '+str+' не подходит под регулярное выражение')
    };
    

    Кстати это не Java, а JavaScript :)

  • @Denis_krsk Появляется ошибка TypeError: Result of expression 'text' [null] is not an object

  • @nikalasss Подредактировал код, а вообще видимо строка не подошла под регулярку.

  • @denis_krsk
    по частям собрать искомое убирая по одной ошибки
    через редактор переменных заменить " " на "-"
    уcтановить переменную [[YOUR_STRING]].touppercase
    если в [[YOUR_STRING]]НЕ найден "-"
    то ммм...разобрать регуляркой по 4 в список
    /d/d/d/d кажеца, че там буква, забыл
    форич этот список
    установить форич дату в [[форич_дата]]-
    добавить ее в другой список
    после цикла список сложить в строку
    в конце готовой переменной будет лишний дефис.
    регулярки можно запускать с конца, гугль в помощь
    или удалить последний символ яваскриптом.
    на нем же лучше все и написать, ради компактификации

  • @viktor Покурил чтоли?...

  • 0 Votes
    5 Posts
    561 Views
  • 0 Votes
    2 Posts
    459 Views
  • 0 Votes
    3 Posts
    487 Views
  • 0 Votes
    8 Posts
    1221 Views
  • 0 Votes
    4 Posts
    656 Views