31 lines
829 B
JavaScript
31 lines
829 B
JavaScript
export function isNotEmpty(value) {
|
|
if (value === null || value === undefined) return false;
|
|
|
|
if (Array.isArray(value)) return value.length > 0;
|
|
|
|
if (typeof value === 'object') return Object.keys(value).length > 0;
|
|
|
|
if (typeof value === 'string') return value.trim() !== '';
|
|
|
|
return true; // для чисел, булевых и т.п.
|
|
}
|
|
|
|
export function formatPrice(raw) {
|
|
if (raw === null || raw === undefined) return '';
|
|
|
|
const str = String(raw).trim();
|
|
const match = str.match(/^([+-]?)(\d+(?:\.\d+)?)/);
|
|
if (!match) return '';
|
|
|
|
const sign = match[1] || '';
|
|
const num = parseFloat(match[2]);
|
|
|
|
if (isNaN(num) || num === 0) return '';
|
|
|
|
const formatted = Math.round(num)
|
|
.toString()
|
|
.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
|
|
return `${sign}${formatted}`;
|
|
}
|