Files
erv-clientright/n8n_normalize_policy_function.js
2026-03-13 10:42:01 +03:00

81 lines
2.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Код для 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
}
}
};