Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
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); }В одном скрипте работает, в другом нет (код)
-
Всем добрый день, подскажите пожалуйста, в чем может быть дело, чего только уже не попробовал. Есть код:
function cyrill_to_latin(text){ var arrru = new Array ('Я','я','Ю','ю','Ч','ч','Ш','ш','Щ','щ','Ж','ж','А','а','Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н', 'О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ы','ы','Ь','ь','Ъ','ъ','Э','э'); var arren = new Array ('Ya','ya','Yu','yu','Ch','ch','Sh','sh','Sh','sh','Zh','zh','A','a','B','b','V','v','G','g','D','d','E','e','E','e','Z','z','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','C','c','Y','y','','','\'','\'','E', 'e'); for(var i=0; i<arrru.length; i++){ var reg = new RegExp(arrru[i], "g"); text = text.replace(reg, arren[i]); } return text; } [[LATIN_TEXT]] = cyrill_to_latin([[RUS_TEXT]]);В одном скрипте все замечательно, в другом -
TypeError: Result of expression 'text.replace' [undefined] is not a function. во время выполнения действия 449684013Уже голову сломал, что может быть не так. Всем заранее большое спасибо.
-
@lcatlas said in В одном скрипте работает, в другом нет (код):
Всем добрый день, подскажите пожалуйста, в чем может быть дело, чего только уже не попробовал. Есть код:
function cyrill_to_latin(text){ var arrru = new Array ('Я','я','Ю','ю','Ч','ч','Ш','ш','Щ','щ','Ж','ж','А','а','Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н', 'О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ы','ы','Ь','ь','Ъ','ъ','Э','э'); var arren = new Array ('Ya','ya','Yu','yu','Ch','ch','Sh','sh','Sh','sh','Zh','zh','A','a','B','b','V','v','G','g','D','d','E','e','E','e','Z','z','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','C','c','Y','y','','','\'','\'','E', 'e'); for(var i=0; i<arrru.length; i++){ var reg = new RegExp(arrru[i], "g"); text = text.replace(reg, arren[i]); } return text; } [[LATIN_TEXT]] = cyrill_to_latin([[RUS_TEXT]]);В одном скрипте все замечательно, в другом -
TypeError: Result of expression 'text.replace' [undefined] is not a function. во время выполнения действия 449684013Уже голову сломал, что может быть не так. Всем заранее большое спасибо.
метод replace применяется только к строкам, а вы ему передаёте или массив или число
-
@lcatlas said in В одном скрипте работает, в другом нет (код):
Блин и правда, это случайный элемент списка, можно ли с этим что-то сделать? (
Уже тупки под утро, как обычно, после 15-16 часов писанины ))
Ну принудительно переведите в строку .toString()
text = text.toString().replace(reg, arren[i]); -
Вот рабочий пример по транслиту русских букв в латиницу, для использования в url или просто если нужно текст конвектировать.
[[TITLE]] = [[TITLE]][0].toLowerCase(); [[TITLE]] = [[TITLE]].toString().replace( /([а-яё])|([\s_-])|([^a-z\d])/gi, function( all, ch, space, words, i ) { if ( space || words ) { return space ? '-' : '-'; } var code = ch.charCodeAt(0), next = [[TITLE]].toString().charAt( i + 1 ), index = code == 1025 || code == 1105 ? 0 : code > 1071 ? code - 1071 : code - 1039, t = ['yo','a','b','v','g','d','e','zh', 'z','i','y','k','l','m','n','o','p', 'r','s','t','u','f','h','c','ch','sh', 'shch','','y','','e','yu','ya' ], next = next && next.toUpperCase() === next ? 1 : 0; return ch.toUpperCase() === ch ? next ? t[ index ].toUpperCase() : t[ index ].substr(0,1).toUpperCase() + t[ index ].substring(1) : t[ index ]; } ); -
@hamov, @Fox said in Ресурс список. Подстановка переменных.:
В BAS есть своя функция translit(), работает прекрасно, только пробелы в строке она заменяет точками.
[20:13:30] Поток №1 : Животные,Транспорт [20:13:32] Поток №1 : zhivotnye.transportвыполнить код
[[TRANSLATED_TEXT]] = translit([[TEXT]]).replace(/\./g, ' ')