Initial
This commit is contained in:
63
n8n_normalize_policy_number.js
Normal file
63
n8n_normalize_policy_number.js
Normal file
@@ -0,0 +1,63 @@
|
||||
// Код для 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 || {})
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user