Máscara //Repositório JavaScript

Descrição

Aplica uma máscara a uma string.
Criado: 2005.10.02

Código (Download)

//+ Carlos R. L. Rodrigues
//@ http://jsfromhell.com/string/mask [rev. #1]

String.prototype.mask = function(m) {
    var m, l = (m = m.split("")).length, s = this.split(""), j = 0, h = "";
    for(var i = -1; ++i < l;)
        if(m[i] != "#"){
            if(m[i] == "\\" && (h += m[++i])) continue;
            h += m[i];
            i + 1 == l && (s[j - 1] += h, h = "");
        }
        else{
            if(!s[j] && !(h = "")) break;
            (s[j] = h + s[j++]) && (h = "");
        }
    return s.join("") + h;
};

Exemplo (Exemplo)

<script type="text/javascript">
//<![CDATA[

document.write(
    "\"", s = "12345678900", "\".mask(\"", m = "###.###.###,##", "\") = ", s.mask(m), "<br />",
    "\"", s = "1234", "\".mask(\"", m = "x:##, y: ##", "\") = ", s.mask(m), "<br />",
    "\"", s = "TEST", "\".mask(\"", m = "\\#-#*#/#^#", "\") = ", s.mask(m), "<br />"
);

//]]>
</script>

Ajuda

String.mask(mask: String): String
Retorna a string com a máscara já aplicada.
mask
máscara a ser utilizada

Observações

A máscara substitui as ocorrências de "#" pelos caracteres da string, sendo assim, se você precisar utilizar o caracter "#" como parte da máscara, basta "comentá-lo" com "\\", ex: "\\#".

A máscara é aplicada da esquerda para a direita, se a string contiver menos caracteres que a máscara, os caracteres "extras" da máscara serão ignorados.

Se a string contiver mais caracteres que a máscara, os caracteres restantes da string serão adicionados ao fim da máscara.

Ranque (Votos: 33)

4.18