81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
|
|
// Код для Function Node в n8n
|
|||
|
|
// Нормализация номера полиса: кириллица -> латиница, к заглавным
|
|||
|
|
|
|||
|
|
// Получаем номер полиса из предыдущей ноды
|
|||
|
|
const policyNumber = $input.item.json.form_data?.cf_1885 || $input.item.json.cf_1885 || '';
|
|||
|
|
|
|||
|
|
if (!policyNumber || typeof policyNumber !== 'string') {
|
|||
|
|
return {
|
|||
|
|
json: {
|
|||
|
|
original: policyNumber,
|
|||
|
|
normalized: '',
|
|||
|
|
error: 'Номер полиса не найден или имеет неверный формат'
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Функция нормализации: кириллица -> латиница, к заглавным
|
|||
|
|
function normalizePolicyNumber(str) {
|
|||
|
|
if (!str) return '';
|
|||
|
|
|
|||
|
|
// Маппинг кириллических букв на латинские (похожие визуально)
|
|||
|
|
const cyrillicToLatin = {
|
|||
|
|
// Заглавные
|
|||
|
|
'А': 'A',
|
|||
|
|
'В': 'B',
|
|||
|
|
'С': 'C',
|
|||
|
|
'Е': 'E',
|
|||
|
|
'К': 'K',
|
|||
|
|
'М': 'M',
|
|||
|
|
'Н': 'H',
|
|||
|
|
'О': 'O',
|
|||
|
|
'Р': 'P',
|
|||
|
|
'Т': 'T',
|
|||
|
|
'Х': 'X',
|
|||
|
|
'У': 'Y',
|
|||
|
|
// Строчные
|
|||
|
|
'а': 'A',
|
|||
|
|
'в': 'B',
|
|||
|
|
'с': 'C',
|
|||
|
|
'е': 'E',
|
|||
|
|
'к': 'K',
|
|||
|
|
'м': 'M',
|
|||
|
|
'н': 'H',
|
|||
|
|
'о': 'O',
|
|||
|
|
'р': 'P',
|
|||
|
|
'т': 'T',
|
|||
|
|
'х': 'X',
|
|||
|
|
'у': 'Y'
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// Заменяем кириллические буквы на латинские
|
|||
|
|
let normalized = str.split('').map(char => {
|
|||
|
|
return cyrillicToLatin[char] || char;
|
|||
|
|
}).join('');
|
|||
|
|
|
|||
|
|
// Приводим к заглавным буквам
|
|||
|
|
normalized = normalized.toUpperCase();
|
|||
|
|
|
|||
|
|
// Убираем лишние пробелы в начале и конце
|
|||
|
|
normalized = normalized.trim();
|
|||
|
|
|
|||
|
|
return normalized;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Нормализуем номер полиса
|
|||
|
|
const normalized = normalizePolicyNumber(policyNumber);
|
|||
|
|
|
|||
|
|
// Возвращаем результат
|
|||
|
|
return {
|
|||
|
|
json: {
|
|||
|
|
original: policyNumber,
|
|||
|
|
normalized: normalized,
|
|||
|
|
changed: policyNumber !== normalized,
|
|||
|
|
// Добавляем нормализованное значение обратно в form_data
|
|||
|
|
form_data: {
|
|||
|
|
...($input.item.json.form_data || {}),
|
|||
|
|
cf_1885: normalized
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|