Skip to content

Instantly share code, notes, and snippets.

@bugzbrown
Created October 22, 2020 12:50
Show Gist options
  • Save bugzbrown/6a293005d8e229abdd7483802c59a861 to your computer and use it in GitHub Desktop.
Save bugzbrown/6a293005d8e229abdd7483802c59a861 to your computer and use it in GitHub Desktop.
Creates simple mask functions for inputs
export const TelephoneMask = (value) => {
return value
.replace(/\D/g, '')
.replace(/(\d{2})(\d)/, '($1) $2')
.replace(/(\d{4})(\d)/, '$1-$2')
.replace(/(\d{4})-(\d)(\d{4})/, '$1$2-$3')
.replace(/(-\d{4})\d+?$/, '$1')
}
export const NumberMask = (value) => {
return value
.replace(/(\d{2})$/, ',$1')
.replace(/(\d{3}),(\d{2})/, '.$1,$2')
.replace(/(\d{3})\.(.*)$/, '.$1.$2')
.replace(/(\d{3})\.(.*)$/, '.$1.$2')
.replace(/(\d{3})\.(.*)$/, '.$1.$2')
}
export const CPFMask = (value) => {
return value
.replace(/\D/g, '')
.replace(/(\d{3})(\d)/,"$1.$2")
.replace(/(\d{3})(\d)/,"$1.$2")
.replace(/(\d{3})(\d{1,2})/,"$1-$2")
.replace(/(-\d{2})\d+?$/, '$1')
}
export const CNPJMask = (value) => {
return value
.replace(/\D/g, '')
.replace(/(\d{2})(\d)/,"$1.$2")
.replace(/(\d{3})(\d)/,"$1.$2")
.replace(/(\d{3})(\d{1,4})/,"$1/$2")
.replace(/(\/\d{4})(\d{1,2})/,"$1-$2")
.replace(/(-\d{2})\d+?$/, '$1')
}
export const DateMask = (value) => {
let data = value
.replace(/\D/g, '')
.replace(/(\d{2})(\d)/, '$1/$2')
.replace(/(\/\d{2})(\d)/, '$1/$2')
.replace(/(\/\d{4})\d+?$/, '$1')
if (data.length>5){
let dt_day = data.split('/')[0]
let dt_mon = data.split('/')[1]
let dt_yr = data.split('/')[2]
console.log(dt_day,dt_mon,dt_yr)
if (dt_mon>12) dt_mon=12
}
return data
}
export const MoneyMask = (value, lang, cur) => {
let v = value.replace(/\D/g, '')
if (v.length>2){
let v1 = v.substring(0,v.length-2)
let v2 = v.substring(v.length-2,v.length)
v1 = v1.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.")
v = v1+','+v2
}
return v
}
export const CepMask = (value) => {
let data = value
.replace(/\D/g, '')
.replace(/(\d{5})(\d)/, '$1-$2')
.replace(/(\-\d{3})\d+?$/, '$1')
return data
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment