Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Правильный JavaScript код выдает ошибку в БАС.
-
Почему эта строчка не работает в выполнить код? Выдает ошибку SyntaxError:
var foundAt = [[CURRENT_URL_ALI_EN]].search( /^https:\/\/www\.aliexpress\.com\//i );Она написана правильно по правилам JavaScript.
Та же самая строчка без экранированного последнего слэша работает:
var foundAt = [[CURRENT_URL_ALI_EN]].search( /^https:\/\/www\.aliexpress\.com/i ); -
@senerg said in Правильный JavaScript код выдает ошибку в БАС.:
//i );
//i );Цвет посмотрите =) и зогчем вы закоментили часть вашей регулярки?
смотрите
впарстмоплькеа теперь
//впарстмоплькеНа форуме код почти свпадает с тем что вытворяет бас. ))) вы закоментировали он сам ее там у себя обернет
-
@uraabk said in Правильный JavaScript код выдает ошибку в БАС.:
@senerg потому что это Бас. В нем много всего работает не так, как должно по правилам.
Вот тут я с вами не согласен. В 90% случаев виноват кодер.
И как по правилам БАСа должна выглядеть эта строчка яваскрипта когда регулярку нужно указывать между слэшами?
Вы прежде чем ругать BAS попробывали этот регексп в консоле браузера.
-
@senerg эхх знал бы я правила наверное ответил. Эмпирическим методом определяйте)) Ну читайте доки что предоставил разраб там все описано как он реализовывал и почему так, а не иначе. Мне просто лень. Я не занимаюсь мартышкиным трудом. Когда понадобится модули не соплевые тогда и почитаю.
-
@fox said in Правильный JavaScript код выдает ошибку в БАС.:
Вы прежде чем ругать BAS попробывали этот регексп в консоле браузера.
Я попробовал эту строчку кода на яваскрипте и она без проблем выдает номер позиции совпадения или -1 если совпадения не было.
-
@senerg Вы умудрились за месяц набить почти 250 постов, я рад вашей активности, но постарайтесь использовать поиск и хоть немного экспериментировать.
var str = "https://www.aliexpress.com/asdf" var regex = new RegExp('^https:\\/\\/www\\.aliexpress\\.com\\/','i'); var foundAt = str.search(regex); log(foundAt) -
@senerg said in Правильный JavaScript код выдает ошибку в БАС.:
Я попробовал эту строчку кода на яваскрипте и она без проблем выдает номер позиции совпадения или -1 если совпадения не было.
Проверил, да, действительно работает в консоле. Раньше не работало
:DВсё дело в двух слешей подряд
//интерпретатор считает, что за ним следует комментарий. Чтобы этого избежать, объявите регексп отдельно (при этом экранируйте обратный слеш обратным слешем) и используйте в поиске объявленную переменную. -
@fox said in Правильный JavaScript код выдает ошибку в БАС.:
Вы умудрились за месяц набить почти 250 постов
Таких нюансов как два слэша не нагуглишь, это индивидуальная особенность баса. Поиском я еще активнее пользуюсь и пересмотрел все видео офф. канала.
Почему вы экранируете спец знаки двумя слэшами, а не одним? Это тоже особенность баса?
-
@senerg Вот почему если BAS ругают, дак все сразу верят, а вот если хвалят, то ни кто не верит?
Таких нюансов как два слэша не нагуглишь, это индивидуальная особенность баса.
Вы не поверите, но когда я столкнулся с такой проблемой, я нагуглил ответ. Это особенность старой версии js, а не BAS'a.
Поиском я еще активнее пользуюсь и пересмотрел все видео офф. канала
Я этому рад, хоть и появляются сомнения на этот счёт..
Почему вы экранируете спец знаки двумя слэшами, а не одним? Это тоже особенность баса?
Да блин, особенность BAS'a, @support специально добавляет в js глюков и багов, чтобы кодили все кубиками, а не лезли в "выполнить код"..
Прочитайте метод RegExp

-
@fox said in Правильный JavaScript код выдает ошибку в БАС.:
Это особенность старой версии js, а не BAS'a
Вот вот вот эта ты зря напейсал)) Ща начнется, а почему не новая?)) И не только @senerg многие не напишут но подумают. То что прикрутить js с с+ задача та еще нетривиальная и до баса все както c# обходились многие забыли. А ведь стоимость эквивалентов была и есть совсем не 100 американских денег
-
@allive said in Правильный JavaScript код выдает ошибку в БАС.:
@fox said in Правильный JavaScript код выдает ошибку в БАС.:
Это особенность старой версии js, а не BAS'a
Вот вот вот эта ты зря напейсал)) Ща начнется, а почему не новая?)) И не только @senerg многие не напишут но подумают. То что прикрутить js с с+ задача та еще нетривиальная и до баса все както c# обходились многие забыли. А ведь стоимость эквивалентов была и есть совсем не 100 американских денег