@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
JavaScript
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