ES6 | RegEx

Un RegEx es la forma abreviada de la expresión regular , que es la secuencia de caracteres que define un patrón. Los caracteres en un RegEx pueden ser letras, números o caracteres especiales. Por lo general, RegEx se usa para encontrar un patrón en una string para reemplazarlos, eliminarlos o modificarlos. En ES6, un RegEx se puede definir mediante 2 notaciones diferentes.

  • Notación literal: el patrón se encierra entre barras. Se ejecuta en tiempo de compilación. Entonces, los patrones constantes se pueden dar en notación literal.
     var regex = /pattern/
  • Función constructora: el patrón se da entre comillas simples. Se ejecuta en tiempo de ejecución. Por lo tanto, se pueden dar patrones flexibles en la función constructora.
    var regex = new RegExp( pattern, optional arguments)

Hay diferentes formas de mencionar patrones que se enumeran a continuación:

Uso de corchetes: se usa para mencionar un rango particular de caracteres en un patrón.

Patrones con corchetes Descripción
[patrón] Cualquier carácter del patrón.
[^patrón] Cualquier carácter que no sea del patrón.
[0-9] Cualquier número decimal entre 0-9.
[Arizona] Cualquier carácter de los alfabetos en minúsculas.
[ARIZONA] Cualquier carácter de los alfabetos en mayúsculas.

Uso de Cuantificadores: Se utiliza para especificar la frecuencia y posición de los caracteres en un patrón.

cuantificadores Descripción
patrón+ Coincide con strings con al menos uno o más patrones.
patrón* Coincide con strings con cero o más patrones.
patrón{n} Coincide con strings con ‘n’ número de patrones.
patrón{n1, n2} Coincide con strings con patrones en el rango de n1 a n2 (ambos inclusive).
patrón{n, } Coincide con strings con un número mínimo de patrones ‘n’.
patrón$ Coincide con strings con patrón como secuencia final.
^ patrón Coincide con strings con patrón como secuencia inicial.

Uso de caracteres literales: Se utiliza para especificar los caracteres de escape.

Caracteres literales Descripción
\0 Denota un carácter NULL.
\t Denota un espacio de tabulación.
\norte Denota una nueva línea.
\r Denota un retorno de carro.

Uso de metacaracteres: Se utiliza para especificar solo el tipo de caracteres.

Metacaracteres Descripción
\s Denota un espacio en blanco o en blanco.
\S Denota un carácter que no está en blanco o sin espacios.
\d Denota un carácter de dígito decimal.
\D Denota un carácter que no es un dígito.
\w Denota un carácter de palabra (cualquier secuencia de caracteres).
\W Denota un carácter que no es una palabra.

Ejemplo:

<script>
    var text1 = "Welcome to GeeksforGeeks ";
  
    var text2 = "The numbers are - 0, 1, 2, "
              + "3, 4, 5, 6, 7, 8, 9. The "
              + "special characters are - @,"
              + " #, $, %, ^, &, *";
  
    // RegExp.match() and RegExp.replace()
    // have been used in the following
    // examples
  
    // Bracket notations
    // 1
    var regexp = new RegExp('[geeks]');
    console.log(text1.match(regexp));
      
    // 2
    var regexp = new RegExp('[^geeks]');
    console.log(text1.match(regexp));
      
    // 3
    var regexp = new RegExp('[0-9]');
    console.log(text2.match(regexp));
  
    // Quantifiers
    // 4
    var regexp = new RegExp('[geeks]*');
    console.log(text1.match(regexp));
      
    // 5
    var regexp = new RegExp('s{2}');
    console.log(text1.match(regexp));
  
    // Literal characters and meta characters
    // 6
    var regexp1 = /(\w+)\s(\w+)\s(\w+)/
    let newtext = text1.replace(regexp1, '$3 $2 $1');
    console.log(newtext);
  
    // 7
    var regexp1 = /(\d+)/;
    let newtext1 = text2.replace(regexp1, 'number');
    console.log(newtext1);
  
    // 8
    var regexp2 = /(\s+)/;
    console.log(text2.replace(regexp2, '\t'));
</script>

Producción:

Nota: RexExp no tiene métodos ni propiedades por sí mismo. Pero hereda algunas funciones y propiedades del prototipo.

Publicación traducida automáticamente

Artículo escrito por sathiyajith19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *