none
Problema con comparacion de caracteres RRS feed

  • Pregunta

  • Hola, estoy atorado en un desarrollo para generar el RFC de una persona fisica. Estoy intentando obtener la primer consonante del apellido paterno, que es tomado de un campo, pero no estoy seguro si esta comparando como tal el caracter o el indice, ya que cuando los caracteres sean iguales necesito que se detenga el for para poder tomar ese caracter y asignarlo a una variable.

    //Agregar la primera consonante del apellido paterno
          
          var apPaterno = crmForm.all.pt_apellidopaterno.DataValue;
          
          var consonante = new Array("B","C","D","F","G","H","J","K","L","M","N","Ñ","P","Q","R","S","T","V","W","X","Y","Z");      
          
         for (var i = 0; i < consonante.length; i++) {
              
              if(apPaterno.charAt(i) == consonante[i])
              {
              break;
              RFC = apPaterno.charAt(i);
              }
          }  

    miércoles, 6 de mayo de 2015 23:29

Respuestas

  • Puedes hacer otra cosa mas,sencilla. Aplicad una expresión,regular para reemplazar las vocales,por "" y luego recuperar el,primer carácter de la cadena resultante, que ya sabemos que son todas consonantes al eliminar las vocales.

    var res = apPaterno.replace(/[AEIOU]/gi, "");
    RFC = res.charAt(0);


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Sergio Parra jueves, 7 de mayo de 2015 17:00
    • Marcado como respuesta Alex_Cort jueves, 7 de mayo de 2015 17:35
    miércoles, 6 de mayo de 2015 23:39

Todas las respuestas

  • Puedes hacer otra cosa mas,sencilla. Aplicad una expresión,regular para reemplazar las vocales,por "" y luego recuperar el,primer carácter de la cadena resultante, que ya sabemos que son todas consonantes al eliminar las vocales.

    var res = apPaterno.replace(/[AEIOU]/gi, "");
    RFC = res.charAt(0);


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Sergio Parra jueves, 7 de mayo de 2015 17:00
    • Marcado como respuesta Alex_Cort jueves, 7 de mayo de 2015 17:35
    miércoles, 6 de mayo de 2015 23:39
  • Creo que no te entendi bien,  de esta parte 

    var res = apPaterno.replace(/[AEIOU]/gi, "");

    que significa "gi" ?

    jueves, 7 de mayo de 2015 0:00
  • es parte de la expresión regular que significa que busque en toda la cadena (modificador g) y que sea case insensitive (modificador i) o sea que no tenga en cuenta mayúsculas y minúsculas

    http://www.w3schools.com/jsref/jsref_regexp_g.asp


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    jueves, 7 de mayo de 2015 0:07
  • Hola, pudiste solucionar tu duda?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 7 de mayo de 2015 7:55
  • Buen dia, no he usado expresiones regulares, solo en HTML. Voy a hacer el intento en vez de usar un Array(). Muchas gracias !!
    jueves, 7 de mayo de 2015 14:49
  • Wow no tienes idea de cuantas lineas de codigo ahorre con esto !! Ahora, si quisiera tomar la primera vocal bastaria con: 

    var res = apPaterno.replace(/BCDFGHIJKLMNÑPQRSTVWXYZ/gi , "");

    Muchas gracias.

    jueves, 7 de mayo de 2015 15:31