Listado completo de tutoriales

Expresiones regulares: métodos search, replace, split, match del objeto String.


El objeto String tiene métodos que reciben como parámetro una expresión regular.

El primer método es el search. Este método busca la primer ocurrencia del string según la expresión que le hemos pasado como parámetro. Devuelve un entero indicando la posición donde comienza la cadena encontrada o un -1 si no encuentra el patrón en el string.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let oracion = 'La noche está muy oscura y estrellada.';
        if (oracion.search(/estrella/) != -1)
            alert('el string estrella está contenido en la variable oracion');
    </script>

</body>

</html>

Hemos dispuesto un if para controlar si el string 'estrella' está contenido en la variable oración:

        if (oracion.search(/estrella/) != -1)
            alert('el string estrella está contenido en la variable oracion');

Por supuesto que podemos emplear expresiones regulares tan complejas como necesitemos utilizando distintos metacaracteres y modificadores.

El segundo método del objeto String que veremos es el replace.

El método replace realiza una búsqueda y reemplazo. Se toma una expresión regular como primer parámetro y un string de reemplazo como su segundo argumento. Si la expresión regular tiene la bandera g, el método replace sustituye todas las coincidencias en la cadena de reemplazo, en caso contrario, se reemplaza sólo la primera coincidencia que encuentre.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let oracion = 'uno dos tres uno dos tres uno dos tres';
        let cadena = oracion.replace(/uno/g, '1');
        alert(cadena); //1 dos tres 1 dos tres 1 dos tres
    </script>

</body>

</html>

En este problema queremos obtener otro String sustituyendo todas las cadenas 'uno' por el caracter '1'. Para hacer que se sustituyan todas las ocurrencias debemos emplear el modificador g:

        let cadena=oracion.replace(/uno/g,'1');

Es importante tener en cuenta que la variable que llama al método replace no se modifica, sino que retorna otro String con el resultado.

El tercer método es el split que tiene por objetivo subdividir un string y retornar un vector con dichas partes. Para la división toma en cuenta la expresión regular pasada como parámetro.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let cadena = '(2,3)-(4,4)-(9,3)';
        let vec = cadena.split(/-/);
        for (let x = 0; x < vec.length; x++) {
            document.write(vec[x] + '<br>');
        }
    </script>

</body>

</html>

El vector vec almacena los valores: (2,3) (4,4) y (9,3), ya que la expresión regular indicada define el caracter - como patrón de corte.

El último método a analizar del objeto String es el match. Tiene como parámetro una expresión regular y retorna un vector con todos los string que cumplen el patrón especificado (siempre y cuando hallamos activado la bandera 'g' (global))

Problema

Se tiene un string donde tenemos almacenados los nombres de personas seguido de sus edades. Generar un vector solo con las edades de todas las personas.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let cadena = 'juan 10 luis 43 pedro 21 carlos 33';
        let vec = cadena.match(/\d+/g);
        for (let x = 0; x < vec.length; x++) {
            document.write(vec[x] + '<br>');
        }
    </script>

</body>

</html>

Retornar