react-native-mask-input
Version:
TextInput with mask for ReactNative on both iOS and Android. Includes obfuscation characters feature.
111 lines (87 loc) • 3.04 kB
JavaScript
import createNumberMask from './createNumberMask';
const BRL_CAR_PLATE = [/[a-zA-Z]/, /[a-zA-Z]/, /[a-zA-Z]/, '-', /\d/, /\w/, /\d/, /\d/];
const BRL_CNPJ = [/\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/];
const BRL_CPF = [/\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '-', /\d/, /\d/];
const BRL_CPF_CNPJ = text => {
const rawValue = (text === null || text === void 0 ? void 0 : text.replace(/\D+/g, '')) || '';
return rawValue.length <= 11 ? BRL_CPF : BRL_CNPJ;
};
const BRL_CURRENCY = createNumberMask({
prefix: ['R', '$', ' '],
separator: ',',
delimiter: '.',
precision: 2
});
const USA_PHONE = ["(", /[2-9]/, /\d/, /\d/, ')', ' ', /[2-9]/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/];
const BRL_PHONE = ['(', /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/];
const CREDIT_CARD = [/\d/, /\d/, /\d/, /\d/, ' ', [/\d/], [/\d/], [/\d/], [/\d/], ' ', [/\d/], [/\d/], [/\d/], [/\d/], ' ', /\d/, /\d/, /\d/, /\d/];
const DATE_DDMMYYYY = (text = '') => {
const cleanText = text.replace(/\D+/g, '');
let secondDigitDayMask = /\d/;
if (cleanText.charAt(0) === '0') {
secondDigitDayMask = /[1-9]/;
}
if (cleanText.charAt(0) === '3') {
secondDigitDayMask = /[01]/;
}
let secondDigitMonthMask = /\d/;
if (cleanText.charAt(2) === '0') {
secondDigitMonthMask = /[1-9]/;
}
if (cleanText.charAt(2) === '1') {
secondDigitMonthMask = /[012]/;
}
return [/[0-3]/, secondDigitDayMask, '/', /[0-1]/, secondDigitMonthMask, '/', /\d/, /\d/, /\d/, /\d/];
};
const DATE_MMDDYYYY = (text = '') => {
const cleanText = text.replace(/\D+/g, '');
let secondDigitMonthMask = /\d/;
if (cleanText.charAt(0) === '0') {
secondDigitMonthMask = /[1-9]/;
}
if (cleanText.charAt(0) === '1') {
secondDigitMonthMask = /[012]/;
}
let secondDigitDayMask = /\d/;
if (cleanText.charAt(2) === '0') {
secondDigitDayMask = /[1-9]/;
}
if (cleanText.charAt(2) === '3') {
secondDigitDayMask = /[01]/;
}
return [/[0-1]/, secondDigitMonthMask, '/', /[0-3]/, secondDigitDayMask, '/', /\d/, /\d/, /\d/, /\d/];
};
const DATE_YYYYMMDD = (text = '') => {
const cleanText = text.replace(/\D+/g, '');
let secondDigitMonthMask = /\d/;
if (cleanText.charAt(4) === '0') {
secondDigitMonthMask = /[1-9]/;
}
if (cleanText.charAt(4) === '1') {
secondDigitMonthMask = /[012]/;
}
let secondDigitDayMask = /\d/;
if (cleanText.charAt(6) === '0') {
secondDigitDayMask = /[1-9]/;
}
if (cleanText.charAt(6) === '3') {
secondDigitDayMask = /[01]/;
}
return [/\d/, /\d/, /\d/, /\d/, '/', /[0-1]/, secondDigitMonthMask, '/', /[0-3]/, secondDigitDayMask];
};
const ZIP_CODE = [/\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/];
export default {
BRL_CAR_PLATE,
BRL_CNPJ,
BRL_CPF,
BRL_CPF_CNPJ,
BRL_CURRENCY,
BRL_PHONE,
USA_PHONE,
CREDIT_CARD,
DATE_DDMMYYYY,
DATE_MMDDYYYY,
DATE_YYYYMMDD,
ZIP_CODE
};
//# sourceMappingURL=Masks.js.map