@genericname1
Does this happen specifically when copying something inside BAS? In the script panel where the actions are or from the browser?
What version of BAS are you using?
Please record a video demonstrating the problem so that we can understand what is happening.
Как научить BAS переделывать строку
-
Всем добрый день
BAS получает текст размером 16 символов с цифрами и буквами и каждые 4 символа должен быть тире и все буквы должны быть большими но может произойти ситуация когда: Буквы будут маленькими или место тире будет пробел или вообще весь текст будет без тире и разделений что тогда делать?
Пример
Мне нужен типа такой текст 9M9J-WDRB-HQ39-HQP1
Но может появится или такой 9M9J WDRB HQ39 HQP1
Или такой 9M9JWDRBHQ39HQP1
Или такой 9m9j-wdrb-hq39-hqp1
Ну или комбинация этих "ошибок"
(это только пример)Что вы посоветуете мне сделать?
-
@nikalasss Использовать регулярное выражение
-
@nikalasss Вот исчерпывающая статья в вики https://ru.wikipedia.org/wiki/Регулярные_выражения Какой результат нужен на выходе?
-
@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+' не подходит под регулярное выражение') }; -
@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 :)
-
@nikalasss Подредактировал код, а вообще видимо строка не подошла под регулярку.
-
@denis_krsk
по частям собрать искомое убирая по одной ошибки
через редактор переменных заменить " " на "-"
уcтановить переменную [[YOUR_STRING]].touppercase
если в [[YOUR_STRING]]НЕ найден "-"
то ммм...разобрать регуляркой по 4 в список
/d/d/d/d кажеца, че там буква, забыл
форич этот список
установить форич дату в [[форич_дата]]-
добавить ее в другой список
после цикла список сложить в строку
в конце готовой переменной будет лишний дефис.
регулярки можно запускать с конца, гугль в помощь
или удалить последний символ яваскриптом.
на нем же лучше все и написать, ради компактификации