none
Eliminar caracteres especiales RRS feed

  • Pregunta

  • Buena tarde

    Existe alguna forma de sustituir los caracteres especiales de una cadena, dejando solo alfanuméricos?

    Agradezco de antemano su tiempo

    Saludos


    Ángel López Mondragón

    martes, 4 de diciembre de 2018 18:01

Respuestas

  • Hey amigo tu preguntas: Si hay una forma de sustituir los caracteres especiales de una cadena, dejando solo alfanuméricos?

    Yo entiendo que tu quieres quitar los caracteres especiales de una cadena de texto al querer ingresarlo a una base de datos, bueno si es así a como yo te entiendo lo puedes hacer de la siguiente manera....

    Publica  la siguiente función:

     Public Function QuitarCaracteres(ByVal cadena As String, Optional ByVal chars As String = ".:<>{}[]^+,;_-/*?¿!$%&/¨Ññ()='áéíóúÁÉÍÓÚ¡|@Û " + Chr(34)) As String
            Dim i As Integer
            Dim nCadena As String
            On Error Resume Next
            'Asignamos valor a la cadena de trabajo para
            'no modificar la que envía el cliente.
            nCadena = cadena
            For i = 1 To Len(chars)
                nCadena = Replace(nCadena, Mid(chars, i, 1), "")
            Next i
            'Devolvemos la cadena tratada
            QuitarCaracteres = nCadena
        End Function

    a hora solo la mandas a llamar de la siguiente manera:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Me.RichTextBox2.Text = QuitarCaracteres(Me.RichTextBox1.Text)
        End Sub

    En este ejemplo puse dos Richtextbox el de la izquierda meti la cadena de caracteres que tu pones abajo y a la derecha el el richtextbox2 veras como sale la respuesta, la cadena ya tratada

    Mira el RESULTADO:

    A hora bien, si deseas quitar algún carácter mas de la cadena solo agrega el carácter no deseado a  la función y listo......espero te sirva mi carnal.....y no olvides marcar como respuesta si te he ayudado....

    saludos desde Nicaragua.........


    jueves, 6 de diciembre de 2018 13:51

Todas las respuestas

  • //Declara la variable y su valor
    string valor = "Hello World !";
    
    //Aplica el metodo replace
    string valor2 = valor.Replace(" ", "-").Replace("!", "?");
    
    el retorno de la variable sera  "Hello-World-?"
    martes, 4 de diciembre de 2018 18:25
  • amigo agrega la siguiente funcion a tu codigo y llamala desde tu variable.

      private string RemoverCAracteresNoValidos(string palabras)
            {
                return Regex.Replace(palabras, "[^a-zA-Z0-9_.- ]+", "", RegexOptions.Compiled);
            }

    saludos

    CR

    martes, 4 de diciembre de 2018 18:36
  • Agradezco la respuesta, sin embargo no me ayuda, te explico porque.

    Tengo esta cadena en SQL:

    4C|1|SAAS750304002 |                    |C1009620|notiene@correo.com                                                              |5572326680|0000000000|SAUL                SALAZAR             ARMAS               |                                        |                                        |                                        |AV 90 REGIMIENTO LT 10 MZ 1 GONZALO BAUTISTA OÛ 72350                                              |                                                  |        |        |                              |     |1|00000000000010100|00000000000000303|00000000000000000|00000000000000303|00000000000000000|00000000000000483|00000000000000000|00000000000000000|

    donde aparece GONZALO BAUTISTA, siguen 3 caracteres, los para SQL es un espacio menos, así es como lo interpreta, ya busqué varias formas a través de código de identificarlo, pero sigo sin poder "verlo",  entonces, como hacerle para que solo deje letras y números


    Ángel López Mondragón

    martes, 4 de diciembre de 2018 19:18
  • Hola buena tarde

    Gracias por la respuesta, ya lo hice pero me marca un error si solo doy de alta la función como me indicas, falta una referencia de objeto.

    di de alta la referencia:

    Imports System.Text.RegularExpressions

    Después la función como indicas

    Private Function RemoverCaracteresNoValidos(byVal Cadena as String) as string

       RemoverCaracteresNoValidos =  Regex.Replace(palabras, "[^a-zA-Z0-9_.- ]+", "", RegexOptions.Compiled)

    End Function

    Saludos



    Ángel López Mondragón

    martes, 4 de diciembre de 2018 19:21
  • amigo si cambias el nombre de la variable de entrada tambien debes cambiar la variable adentro de la llamada, estas recibiendo Cadena como String y en Regex.Replace (Palabra.. )

    te adjunto la función en VB corregida

    Private Function RemoverCaracteresNoValidos(ByVal Cadena As String) As String
    
            RemoverCaracteresNoValidos = Regex.Replace(Cadena, "[^a-zA-Z0-9_.- ]+", "", RegexOptions.Compiled)
    
        End Function

    Saludos 

    CR

    martes, 4 de diciembre de 2018 19:36
  • Una disculpa por no haber corregido la variable cuando respondí, ya lo había hecho en el programa, igualar las mismas en la función.

    Sin embargo, envía error una vez que entra a la Función:

    MSJ de error: " analizando "[^a-zA-Z0-9_.- ]+" - Intervalo [x-y] en orden inverso. -"

    La función quedó así:

        Private Function RemoverCaracteresNoValidos(ByVal Cadena As String) As String
            RemoverCaracteresNoValidos = Regex.Replace(Cadena, "[^a-zA-Z0-9_.- ]+", " ", RegexOptions.Compiled)
        End Function


    Ángel López Mondragón

    martes, 4 de diciembre de 2018 20:11
  • Hey amigo tu preguntas: Si hay una forma de sustituir los caracteres especiales de una cadena, dejando solo alfanuméricos?

    Yo entiendo que tu quieres quitar los caracteres especiales de una cadena de texto al querer ingresarlo a una base de datos, bueno si es así a como yo te entiendo lo puedes hacer de la siguiente manera....

    Publica  la siguiente función:

     Public Function QuitarCaracteres(ByVal cadena As String, Optional ByVal chars As String = ".:<>{}[]^+,;_-/*?¿!$%&/¨Ññ()='áéíóúÁÉÍÓÚ¡|@Û " + Chr(34)) As String
            Dim i As Integer
            Dim nCadena As String
            On Error Resume Next
            'Asignamos valor a la cadena de trabajo para
            'no modificar la que envía el cliente.
            nCadena = cadena
            For i = 1 To Len(chars)
                nCadena = Replace(nCadena, Mid(chars, i, 1), "")
            Next i
            'Devolvemos la cadena tratada
            QuitarCaracteres = nCadena
        End Function

    a hora solo la mandas a llamar de la siguiente manera:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Me.RichTextBox2.Text = QuitarCaracteres(Me.RichTextBox1.Text)
        End Sub

    En este ejemplo puse dos Richtextbox el de la izquierda meti la cadena de caracteres que tu pones abajo y a la derecha el el richtextbox2 veras como sale la respuesta, la cadena ya tratada

    Mira el RESULTADO:

    A hora bien, si deseas quitar algún carácter mas de la cadena solo agrega el carácter no deseado a  la función y listo......espero te sirva mi carnal.....y no olvides marcar como respuesta si te he ayudado....

    saludos desde Nicaragua.........


    jueves, 6 de diciembre de 2018 13:51