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

64 lines
2.7 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.

// Код для Code Node в n8n
// Нормализация номера полиса: замена кириллических букв на латинские
// Получаем номер полиса из предыдущей ноды
// Предполагаем, что номер приходит в поле police_number или inn
const policyNumber = $input.item.json.police_number ||
$input.item.json.inn ||
$input.item.json.form_data?.police_number ||
$input.item.json.form_data?.inn ||
'';
if (!policyNumber || typeof policyNumber !== 'string') {
return {
json: {
original: policyNumber,
normalized: '',
error: 'Номер полиса не найден или имеет неверный формат'
}
};
}
// Функция нормализации: кириллица -> латиница (как в database.php строки 105-109)
function normalizePolicyNumber(str) {
if (!str) return '';
let normalized = str;
// Заменяем кириллические буквы на латинские (как в database.php)
normalized = normalized.replace(/Е/g, 'E'); // Кириллическая Е -> латинская E
normalized = normalized.replace(/е/g, 'e'); // Кириллическая е -> латинская e
normalized = normalized.replace(/А/g, 'A'); // Кириллическая А -> латинская A
normalized = normalized.replace(/а/g, 'a'); // Кириллическая а -> латинская a
// Можно добавить другие похожие буквы, если нужно:
// normalized = normalized.replace(/В/g, 'B');
// normalized = normalized.replace(/С/g, 'C');
// normalized = normalized.replace(/О/g, 'O');
// normalized = normalized.replace(/Р/g, 'P');
// normalized = normalized.replace(/Х/g, 'X');
// normalized = normalized.replace(/М/g, 'M');
// normalized = normalized.replace(/Н/g, 'H');
// normalized = normalized.replace(/Т/g, 'T');
// normalized = normalized.replace(/К/g, 'K');
return normalized;
}
// Нормализуем номер полиса
const normalized = normalizePolicyNumber(policyNumber);
// Возвращаем результат
return {
json: {
original: policyNumber,
normalized: normalized,
changed: policyNumber !== normalized,
// Добавляем нормализованное значение обратно в структуру данных
police_number: normalized,
inn: normalized, // на случай если используется поле inn
// Сохраняем остальные данные из предыдущей ноды
...($input.item.json || {})
}
};