UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

37 lines 1.95 kB
import { MASK_TYPE } from '../../components/input/types/input'; export const cleanInputValueAlphanumeric = (value) => value.replace(/[\W_]+/g, ''); export const cleanInputValueAlphanumericWithSpaces = (value) => value.replace(/[^\w\s]+/g, ''); export const cleanInputValueNumber = (value) => value.replace(/[^\d]/g, ''); export const cleanInputValueNumberWithSpaces = (value) => value.replace(/[^\d\s]/g, ''); export const cleanInputValueLetters = (value) => value.replace(/[^a-zñA-ZÑ]/g, ''); export const cleanInputValueLettersHyphenSpace = (value) => value.replace(/[^a-zñA-ZÑ\s-]/g, ''); export const cleanInputValueObject = { [MASK_TYPE.ALPHANUMERIC]: (value) => cleanInputValueAlphanumeric(value), [MASK_TYPE.ALPHANUMERIC_WITH_SPACES]: (value) => cleanInputValueAlphanumericWithSpaces(value), [MASK_TYPE.NUMBERS]: (value) => cleanInputValueNumber(value), [MASK_TYPE.NUMBERS_WITH_SPACES]: (value) => cleanInputValueNumberWithSpaces(value), [MASK_TYPE.LETTERS]: (value) => cleanInputValueLetters(value), [MASK_TYPE.LETTERS_HYPHEN_SPACE]: (value) => cleanInputValueLettersHyphenSpace(value), }; export const cleanInputValue = (value, maskType) => cleanInputValueObject[maskType || MASK_TYPE.ALPHANUMERIC](value); export const matchInputValue = (oldValue, value, regex) => { const newRegex = typeof regex === 'string' ? new RegExp(regex) : regex; if (newRegex.test(value) || value === '') { return value; } return oldValue; }; export const formatMask = (unformattedValue, mask) => { let i = 0; let lastIndex = -1; const getValueIndex = (_, prevIndex) => { if (i >= unformattedValue?.length) { return '#'; } lastIndex = prevIndex; return unformattedValue[i++]; }; const replaceCodeForValue = mask.replace(/#/g, getValueIndex); return replaceCodeForValue.substring(0, lastIndex + 1); }; //# sourceMappingURL=mask.utility.js.map