'## Esta função retorna um string formatada de acordo com uma máscara especificada
'por cerquilhas(#), junto com seus complementos. Sendo assim o caractere que for
'diferente de cerquilha será implementado na string, na ordem indicada ##
Function Mask(sfString,sfMask,bfMode)
Dim sfPart, i, ifContChar, sfFormated,sfFormatedi
sfPart = ""
sfFormated = ""
sfFormatedi = ""
'## Caso bfMode verdadeiro, formata a String da esquerda para a direita ###
if not bfMode then
for i = 1 to Len(sfMask) '## Loop de 1 ate o tamanho da string ##
sfPart = Mid(sfMask,i,1)'## Pega caractere por caracter da mascara ##
if sfPart = "#" then
ifContChar = ifContChar + 1 '## Adiciona posicoes ao contador da string ##
sfFormated = sfFormated & Mid(sfString,ifContChar,1)
else
'## Se for diferente de cerquilha(#) adiciona o caractere seguinte,
'à string ##
sfFormated = sfFormated & sfPart
end if
next
else
'## Caso bfMode falso, formata a String da direita para a esquerda ###
i = Len(sfMask) '## Iguala i ao tamanho da Mascara ##
ifContChar = Len(sfString) '## Iguala iCont Char ao tamanho da String ##
do while ifContChar > 0 and i > 0 '## Enquanto nenhum dos contadores for igual a 0 ##
sfPart = Mid(sfMask,i,1) '## Pega um caractere da String ##
if sfPart = "#" then
sfFormatedi = sfFormatedi & Mid(sfString,ifContChar,1) '## Monta a string com formatação ##
ifContChar = ifContChar - 1 '## Subtrai do contador da String ##
else if sfPart <> "#" then
sfFormatedi = sfFormatedi & sfPart '## Adiciona complemento na String ##
end if
end if
i = i - 1 '## Subtrai do contador da mascara ##
loop
'## Inverte a string após formatada ##
i = Len(sfFormatedi)
do while i > 0
sfFormated = sfFormated & Mid(sfFormatedi,i,1)
i = i - 1 '## Subtrai 1 do contador ##
loop
end if
Mask = sfFormated
End Function
response.write "<font face=""Verdana"" size=""1"">"
response.write "Normal(false): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",false)&"<br>Oculta valores a direita<br>"
response.write "Inverso(true): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",true)&"<br>Oculta valores a esquerda<br><br>"
response.write "Telefone: 44442222 + ####-#### = "&Mask("44442222","####-####",false)&"<br>"
response.write "CPF: 02145877896 + ###.###.###-## = "&Mask("02145877896","###.###.###-##",false)
response.write "</font>"