PUBLICIDADE

Autor

gabriel

Gabriel Fróes

membro deste junho de 2006

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

A quanto tempo você já é desenvolvedor?

Formatação de nomes próprios com ASP


É muito comum em um sistema que utiliza cadastros com banco de dados com nomes próprios desformatados; alguns nomes todos em caixa alta e outros todos em caixa baixa. Isso ocorre pois cada pessoa tem o seu jeito de digitar, apesar de incorreto.

O que ocorre, na verdade, é que ao emitir um relatório, por exemplo, os nomes ficam com a formatação errada e atrapalha até leitura e também a compreensão dos nomes.

Depois de ver diversos nomes mal formatados em sites e sistemas, decidi criar uma função de formatação de nomes próprios.

Dessa forma 'JOÃO DA SILVA' ou 'joão da silva' será formatado como João da Silva.

Observe que existe uma exceção, as preposições. Elas diferentemente dos nomes, não podem ter a primeira letra em maiúsculo.

Veja outros exemplos de formatação:
- JOSÉ FRANCISCO DOS SANTOS ficará José Francisco dos Santos
- joão de oliveira carvalho e silva ficará João de Oliveira Carvalho e Silva

Para utilizar a função basta passar o nome (desformatado) como parâmetro que ela retornará formatada. Simples assim. Diga adeus aos nomes desformatados.
  • Visualizar demonstração do código
<%
'-----------------------------------------------------
'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
Response.Write FormataNome ("JOSÉ FRANCISCO DOS SANTOS") & "<br />"
Response.Write FormataNome ("joão de oliveira chavier e silva") & "<br />"
%>

Sim   Não   Este código foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.