Files
erv-clientright/n8n_normalize_policy_number.js

64 lines
2.7 KiB
JavaScript
Raw Normal View History

2026-03-13 10:42:01 +03:00
// Код для 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 || {})
}
};