Skip to content

Instantly share code, notes, and snippets.

@renie
Last active December 20, 2015 13:59
Show Gist options
  • Save renie/6143303 to your computer and use it in GitHub Desktop.
Save renie/6143303 to your computer and use it in GitHub Desktop.
mask for brazillian cellphone. NOT TESTED YET!
function mascara(field,callback){
v_obj=field;
v_fun=callback;
setTimeout("executeMask()",1)
}
function executeMask(){
v_obj.value=v_fun(v_obj.value);
}
function maskPhone(valueField) {
valueField = valueField.replace(/\D/g,"");
var firstNumber = "";
var ddd = "";
var isNineDigits = false;
var lengthCellActual = valueField.length;
if (valueField.length > 2) {
ddd = valueField.substring(0,2);
firstNumber = valueField.substring(2,3);
}
if (ddd == 11) {
if (firstNumber == 6 || firstNumber == 7 || firstNumber == 8 || firstNumber == 9 ) {
isNineDigits = true;
v_obj.setAttribute("maxlength","15");
} else {
v_obj.setAttribute("maxlength","14");
}
} else {
v_obj.setAttribute("maxlength","14");
}
valueField = valueField.replace(/^(\d{2})(\d)/g,"($1) $2");
if (lengthCellActual == 7) {
if (!isNineDigits) {
valueField = valueField.replace(/(\d)(\d{1})$/,"$1-$2");
}
} else if (lengthCellActual == 8) {
if (!isNineDigits) valueField = valueField.replace(/(\d)(\d{2})$/,"$1-$2");
else valueField = valueField.replace(/(\d)(\d{1})$/,"$1-$2");
} else if (lengthCellActual == 9) {
if (!isNineDigits) valueField = valueField.replace(/(\d)(\d{3})$/,"$1-$2");
else valueField = valueField.replace(/(\d)(\d{2})$/,"$1-$2");
} else if (lengthCellActual == 10) {
if (!isNineDigits) valueField = valueField.replace(/(\d)(\d{4})$/,"$1-$2");
else valueField = valueField.replace(/(\d)(\d{3})$/,"$1-$2");
} else if (lengthCellActual == 11) {
valueField = valueField.replace(/(\d)(\d{4})$/,"$1-$2");
}
return valueField;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment