@farzek-eth Это какой-то единичный баг , я по кд себе перекидываю шаблоны с пк на ноутбук и все окей , бывало даже что с тг перекидывал
С исход кодом - качаешь VS code и туда кидаешь шаблон , открыть можно где угодно но мне там лучше
Всем добрый день, подскажите пожалуйста, в чем может быть дело, чего только уже не попробовал. Есть код:
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, ' ')