<%
'-----------------------------------------------------
'Função: FormataNome(ByVal Nome)
'Sinopse: Formata nome próprio para que as primeiras
' letras fiquem maiúsculo (com exceções)
'Parametro:
' Nome = Nome próprio a ser formatado
'Autor: Gabriel Fróes (www.codigofonte.com.br)
'Data: 20/10/2008
'-----------------------------------------------------
Function FormataNome(ByVal Nome)
'Declarações
Dim arrNome
Dim Retorno
Dim Cont
Dim objER
Dim Excecoes
'Inicializando e configurando o objeto (expressão regular)
Set objER = New RegExp
objER.IgnoreCase= True
objER.Global = True
Excecoes = "^(da|das|de|do|dos|e)$"
objER.Pattern = Excecoes
'Por padrão o nome todo ficará minúsculo
Nome = Lcase(Replace(Nome, " ", " "))
'Gerando um array com todas as palavras individualmente
arrNome = Split(Nome, " ")
Retorno = ""
For Cont = 0 To Ubound(arrNome)
arrNome(Cont) = Trim(arrNome(Cont))
'Colocando a primeira letra de cada palavra maiúscula (salvo exceções)
If Not objER.Test(arrNome(Cont)) Then
If Not arrNome(Cont) = "" Then
arrNome(Cont) = Ucase(Left(arrNome(Cont), 1)) & Right(arrNome(Cont), Len(arrNome(Cont))-1)
End If
End If
Retorno = Retorno & " " & arrNome(Cont)
Next
'Destruindo o objeto (expressão regular)
Set objER = Nothing
'Retorno da função
FormataNome = Trim(Retorno)
End Function
'Teste de utilização da função
%>
Formatação de nomes próprios em ASP