terça-feira, 1 de dezembro de 2009

Javascript - Primeira em Maiúscula...

Postei uma nova versão aqui...

Segue uma função javascript para deixar maiúsculas apenas a primeira letra de cada palavra, com suporte a exceções...
function UcWords(campo) {
 x=getSelectionStart(campo);
 y = campo.value.length
 val = campo.value;
 if (val.length > 1)
  val = val.substr(0,1).toUpperCase() + val.substr(1).toLowerCase()
 else
  val = val.toUpperCase()
 newVal = UcWords_Space(val)
 if (newVal.length > 1)
 {
  if (newVal.search(/\./) > -1) newVal = UcWords_Generic(newVal,'.')
  if (newVal.search(/\//) > -1) newVal = UcWords_Generic(newVal,'/')
  if (newVal.search(/\(/) > -1) newVal = UcWords_Generic(newVal,'(')
  if (newVal.search(/\)/) > -1) newVal = UcWords_Generic(newVal,')')
  if (newVal.search(/-/) > -1) newVal = UcWords_Generic(newVal,'-')
  if (newVal.search(/\*/) > -1) newVal = UcWords_Generic(newVal,'*')
 }
 campo.value = newVal;
 x = x + campo.value.length - y
  setCaretTo(campo,x)
}
function UcWords_Space(val)
{
 if (val.search(/ /) == -1) return val;
 newVal = new Array;
 val = val.split(' ');
 for(var c=0; c < val.length; c++) {
  var g = val[c].substring(0,1) //Primeira Letra
  var e = val[c].substring(1,val[c].length) //Resto
  var h = val[c] //PalavraFull
  if ((h == 'de') || (h == 'do') || (h == 'dos') || (h == 'da')  || (h == 'das') || (h == 'e'))
  {
  }
  else
  {
   g = g.toUpperCase()
  }
  newVal[c] = g+e
 }
 newVal = newVal.join(' ')
 return newVal

}

function UcWords_Generic(Texto,Separador)
{
 ArrVal = new Array;
 Texto = Texto.split(Separador);
 for(var d=0; d < Texto.length; d++) {
  ArrVal[d] = Texto[d].substring(0,1).toUpperCase() + Texto[d].substring(1); //Primeira Letra + Resto
 }
 return ArrVal.join(Separador)
}

Nenhum comentário: