Foros del Web » Programando para Internet » Javascript »

Como sacar las primeras letras de un frase

Estas en el tema de Como sacar las primeras letras de un frase en el foro de Javascript en Foros del Web. Hola nuevamente... ....como dice en el titulo, lo que estoy buscando es como sacar las primeras letras de un frase, por ejemplo: Colegio Nacional Del ...
  #1 (permalink)  
Antiguo 01/05/2009, 22:30
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Como sacar las primeras letras de un frase

Hola nuevamente... ....como dice en el titulo, lo que estoy buscando es como sacar las primeras letras de un frase, por ejemplo:
Colegio Nacional Del Peru...me tendria que dar como rpta: CNDP...alguna idea que me pueda ayudar???
  #2 (permalink)  
Antiguo 01/05/2009, 23:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Como sacar las primeras letras de un frase

expresiones regulares es lo mejor que hay. si el string solo se compone de las palabras que quieres convertir a siglas, puedes crear una expresion que paree todas las mayusculas o una expresion que remueva todo caracter que no sea mayusculas.
  #3 (permalink)  
Antiguo 04/05/2009, 02:31
Avatar de alor86  
Fecha de Ingreso: abril-2009
Mensajes: 110
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Como sacar las primeras letras de un frase

checa este codigo tal vez le falte optimizarlo pero hace lo que quieres

<html>

<head>

<meta name="author" content="alor86" />
<script type="text/javaScript">
function s(){
var iniciado = true;
var cadena = prompt("Siglas","");
var sig ="";
var inicio = 0;
while(iniciado){
if(cadena.indexOf(" ")==-1 && inicio==0){
sig = cadena.charAt(0);
iniciado = false;
alert(sig.toUpperCase());
}
else{
if(inicio==0){
sig+=cadena.charAt(0);
inicio = cadena.indexOf(" ");
}
else{
if(cadena.indexOf(" ",inicio+1)==-1){
iniciado=false;
sig+=cadena.charAt(inicio+1);
alert(sig.toUpperCase());
}
else{
sig+=cadena.charAt(inicio+1);
inicio = cadena.indexOf(" ",inicio+1);
}
}
}
}
}
</script>
<title>Untitled 1</title>
</head>

<body onload="s();">

</body>
</html>
  #4 (permalink)  
Antiguo 04/05/2009, 02:49
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Como sacar las primeras letras de un frase

Nunca he usado expresiones regulares en javascript (al menos como en php), pero en php sería así (creo que las expresiones regulares no cambian entre sistemas, pero quien sabe.

Expresión regular /([A-Za-z])([A-Za-z0-9]+)/

A reemplazar por $1

$1 hace referencia al primer (), que contiene la primera letra.


Si bien no me equivoco, para que el sistema funcione en javascript hay que poner g al final del patrón (para que sea búsqueda global).

Ahora lo pruebo y te digo.

------------------------

Ya está:

Código:
<script type="text/javascript">
txt="Desoxiribo-Nucleicic Acid";
document.write(txt+"<br/>"+txt.replace(/([A-Za-z])([A-Za-z0-9]+)(\-|\s|$)/g, "$1"));
</script>
en forma de función

Código:
function acronym(txt){
 return txt.replace(/([A-Za-z])([A-Za-z0-9]+)(\-|\s|$)/g, "$1");
}
Explicación:

([A-Za-z]) :Busca la primera letra (y por ser el primer paréntesis lo guarda en $1. Como no hay un + después del ] (como en el siguiente) no busca mas que una letra.

([A-Za-z0-9]+): Busca el resto de letras de la palabra. Las palabras no pueden tener tildes, que se arregla añadiendo ÁÉÍÓÚáéíóú detrás del 9 (para que la primera letra pueda tener tildes se hace lo mismo).

(\-|\s|$) :Busca hasta el final de la palabra, determinado por un gión (\-), un espacio (\s) o el final de la cadena ($). El inicio de una cadena es ^.

Añadiendo las tildes:

Código:
function acronym(txt){
 return txt.replace(/([A-Za-zÁÉÍÓÚáéíóú])([A-Za-z0-9ÁÉÍÓÚáéíóú]+)(\-|\s|$)/g, "$1");
}
Las tildes tienen un fallo por que los acrónimos no se acentúan (perderían su corrección). Ergo:

Código javascript:
Ver original
  1. function acronym(txt){
  2.  var result = txt.replace(/([A-Za-zÁÉÍÓÚáéíóú])([A-Za-z0-9ÁÉÍÓÚáéíóú]+)(\-|\s|$)/g, "$1");
  3.  result = result.replace(/Á/,"A")
  4.  result = result.replace(/É/,"E")
  5.  result = result.replace(/Í/,"I")
  6.  result = result.replace(/Ó/,"O")
  7.  result = result.replace(/Ú/,"U")
  8.  result = result.replace(/á/,"a")
  9.  result = result.replace(/é/,"e")
  10.  result = result.replace(/í/,"i")
  11.  result = result.replace(/ó/,"o")
  12.  result = result.replace(/ú/,"u")
  13.  return result;
  14. }

Este script lo produce (está mejorado del anterior).

Última edición por AnesGy; 04/05/2009 a las 03:11 Razón: Hallé el códgio
  #5 (permalink)  
Antiguo 07/05/2009, 09:59
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Respuesta: Como sacar las primeras letras de un frase

perfecto, gracias por sus respuestas...son de mucha ayuda......gracias

Última edición por xtian87; 07/05/2009 a las 10:54
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:05.