PARÉNTESIS EN EXPRESIONES REGULARES JAVASCRIPT. FLAGS. MÉTODOS EXEC, TEST, MATCH, SEARCH, REPLACE, SPLIT. EJEMPLOS (CU01155E)

Documentos relacionados
OPERADOR CONDICIONAL TERNARIO TIPO IF CON INTERROGACIÓN (JAVASCRIPT, JAVA, ETC.) Y DOS PUNTOS. EJEMPLOS (CU01152E)

CREAR OBJETOS JAVASCRIPT CON THIS Y NEW. EJEMPLOS PARA ENTENDER QUÉ SON LOS OBJETOS Y PARA QUÉ SIRVEN. (CU01143E)

HERENCIA JAVASCRIPT: EJEMPLO CON CÓDIGO BÁSICO. JERARQUÍA DE CLASES EN CADENA DE PROTOTIPOS. (CU01149E)

CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E)

TUTORIAL SOBRE EXPRESIONES REGULARES EN JAVASCRIPT PARA VALIDACIÓN DE CAMPOS EN FORMULARIOS HTML:

ARRAYS ASOCIATIVOS JAVASCRIPT? MAPS? RECORRER PROPIEDADES DE OBJETOS CON FOR IN. EJEMPLOS EJERCICIOS RESUELTOS. (CU01146E)

DEPURAR JAVASCRIPT. CONSOLE.LOG. DEBUG DE ERRORES CON FIREFOX (FIREBUG), CHROME, INTERNET EXPLORER. IDES. (CU01151E)

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

ADDEVENTLISTENER JAVASCRIPT. REMOVE. ATTACHEVENT. THIS EN EVENTOS. PROPAGACIÓN. BUBBLING. CAPTURA. (CU01158E)

VARIABLES STRING JAVASCRIPT. DEBEN USARSE COMILLAS SIMPLES O DOBLES? CARACTERES DE ESCAPE \N \T.LENGTH (CU01114E)

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

JERARQUÍA DE OBJETOS JAVASCRIPT. FORMS, ELEMENTS, IMAGES, LINKS. NAVIGATOR: USERAGENT, GEOLOCATION, ONLINE. (CU01170E)

JavaScript: Expresiones regulares

ENVÍO DE DATOS DE UN FORMULARIO CON PHP. MÉTODOS GET Y POST. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00832B)

COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B)

EJEMPLO RELOJ JAVASCRIPT. SETTIMEOUT, CLEARTIMEOUT, SETINTERVAL, REQUEST ANIMATIONFRAME. (CU01164E)

PHP: Lenguaje de programación

FORMULARIOS EN HTML. OPCIONES. CASILLAS DE VERIFICACIÓN CHECKBOX. BOTONES DE RADIO. LISTAS DE OPCIONES SELECT, OPTGROUP, OPTION.

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

JAV JA A V S A C S R C I R P I T

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Programación Hipermedia I

Grupo de Ingeniería del Software. Validación con Expresiones Regulares en JavaScript. Qué es una expresión regular?

EJEMPLO DE CONSULTA PHP MYSQL. SELECT. USO DEL BUCLE WHILE CON MYSQLI_FETCH_ARRAY PARA EXTRAER LOS RESULTADOS DE UNA CONSULTA.

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

EL MÉTODO EQUALS EN JAVA. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. COMPARAR OBJETOS. EJEMPLOS. (CU00662B)

LA FUNCIÓN SI EN EXCEL

JavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C/C++, aunque también algo de Pascal.

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Manejo de eventos en JavaScript WEB-TECHNOLOGIES

DE LA ESTRUCTURA HTML Y SU SEMÁNTICA AL MODELO DE CAJAS CSS. ELEMENTOS BLOCK Y ELEMENTOS INLINE (CU01008D)

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Scripting en el cliente: Javascript. Tecnologías Web

ENCABEZADOS HTML <h1> A <h6>, PÁRRAFOS <p>, APLICAR ESTILOS Y ETIQUETA <pre> DE TEXTO PREFORMATEADO. EJEMPLOS (CU00715B)

FUNCIONES EN EXCEL III

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

PHP INSERT INTO VALUES. INSERTAR DATOS (REGISTROS O FILAS) EN BASE DE DATOS MySQL. EJEMPLOS Y EJERCICIO RESUELTO (CU00843B)

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

CÓMO CREAR CONSTRUCTORES E INICIALIZAR OBJETOS EN JAVA. EJERCICIO EJEMPLO RESUELTO. (CU00639B)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COMPUTACIÓN

Curso de Java Introducción a la Programación I

Métodos de la clase String

Introducción al desarrollo web (idesweb)

PRACTICA JSP SEMANA 2

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)

1. Haz que se muestre una pantalla de alerta con tu nombre. 2. Repite el ejercicio anterior pero usando una variable para guardar tu nombre

Archivo ASM. Es el documento que contiene el código fuente del programa.

CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E)

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

UNIDAD 1 GENERALIDADES HTML

Manual de turbo pascal

SIGNIFICADO DE DEPRECATED. ETIQUETA BODY: CUERPO DE LA PÁGINA HTML. BGCOLOR, TEXT, BACKGROUND. (CU00712B)

Aplicaciones seguras con ClaseSeguridad

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

COLORES HTML Y CSS. RGB DECIMAL O PORCENTUAL. CÓDIGOS DE COLORES HEXADECIMALES. EJEMPLOS. (CU01019D)

API CANVAS HTML Y JAVASCRIPT. EJEMPLOS. DIBUJAR CÍRCULOS, FORMAS, GRÁFICOS, ANIMACIONES, JUEGOS, ETC. (CU01195E)

MATERIAL INTRODUCTORIO ORACLE 11G

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

5. Sentencias selectivas o condicionales

Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)

GUÍA BÁSICA DE SCHEME v.4

TEMA 3 A: INTRODUCCIÓN AL DOM

<script type="text/javascript" src="miscript.js"></script>

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

12 La herramienta LEX

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

ASIGNACIÓN DE IGUALDAD EN JAVA. REFERENCIAS A OBJETOS. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. (CU00663B)

ESTRUCTURAS DE CONTROL

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Programación páginas web con PHP

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 2

Curso librerias Web 2.0. Aplicaciones Web Serv Inf UA JSON

Data Bases 2. La sintaxis precisa de esta función es: mysql_pconnect (nombre del servidor, el usuario de la base de datos, password ) ;

Manual CMS Mobincube

JavaScript: Introducción

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Visual Basic: procedimientos Sub y funciones Function. Tipos de parámetros y tipos de retorno. Ejemplos (CU00340A)

Introducción a JavaScript y DOM DISERTANTE ING. RASJIDO, JOSE ALBERTO

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]

Programación estructurada

FUNDAMENTOS DE OBJECT PASCAL

ACTIVACIÓN DEL CORREO ELECTRÓNICO ACADÉMICO (CEA) ESTUDIANTES DE GRADO

Buttons (Command Buttons) en Visual Basic. Propiedades y ejemplos. Código asociado a eventos. (CU00321A)

Ejercicio: Mensajes Alert, Confirm y Prompt

PRÁCTICA 1: Introducción a Matlab

Transcripción:

APRENDERAPROGRAMAR.COM PARÉNTESIS EN EXPRESIONES REGULARES JAVASCRIPT. FLAGS. MÉTODOS EXEC, TEST, MATCH, SEARCH, REPLACE, SPLIT. EJEMPLOS (CU01155E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº55 del Tutorial básico JavaScript desde cero. Autor: César Krall

Paréntesis en expresioness regulares JavaScript. Flags. Métodos. PARÉNTESIS Y FLAGS EN EXPRESIONES REGULARES Las expresiones regulares JavaScript son una potente herramienta que nos permitirá resolver problemas diversos. Ya conocemos aspectoss básicos como la instanciación de objetos RegExp y los caracteres especiales disponibles. Vamos a ampliar conocimientos sobre expresiones regulares. EXPRESIONES REGULARES CON FLAGS JavaScript permite especificar modos de búsqueda de expresiones regulares a través de lo que denomina flags (banderas o indicadores). Los flags se indican en el momento de definir la expresión regular: a) Si se define en forma de literal: var miexpresionregular = /as?.a/flagsaincluir b) Instanciando el objeto RegExp: var miexpresionregular = new RegExp("as?.a", " flagsaincluir") En la siguiente tabla se indican los principales flags, cómo usarlos y ejemplos. Flag g i m Combinaciones Significado Búsqueda global de todas las coincidencias (no se detienee al encontrar la primera coincidencia) No diferenciar entre mayúsculas y minúsculas Búsqueda multilínea. Para los indicadores de comienzo de cadena ^ y fin de cadena $, si se aplica esta bandera, se tienen en cuenta matches en todos los principios y finales de línea, no sólo al principio y final de cadena. Se pueden especificar varios flags /as?.a/gg new RegExp("as?.a", "g") /as?.a/ii new RegExp("as?.a", "i") /as?.a/mm Ejemplo sintaxis new RegExp("as?.a", "m") var miexpreg = /^i/mi Indica que hará match con cualquier comienzo de línea por una i minúscula ó I mayúscula (búsqueda multilínea y sin diferenciar mayúsculas y minúsculas).

MÉTODOS DE LOS OBJETOS TIPO EXPRESIÓN REGULAR Los objetos de tipo expresión regular proveen de una serie de métodos útiles. En la siguiente tabla vemos cuáles son, su significado y un ejemplo de uso. Método Significado Ejemplo de uso exec test Ejecuta una búsqueda del patrón y devuelve un array cuyo índice 0 contiene el valor encontrado. Si está activado el flag g, la repetición de la búsqueda devuelve la siguiente coincidencia. Comprueba si se verifica el patrón y devuelve true o false msg = ''; while ((matches = miexpreg.exec(txt))!== null ) { msg = msg + 'Encontrado: '+matches[0]+'\n'; } msg = ''; alert('hay match: '+ miexpreg.test(txt)); MÉTODOS DE LOS OBJETOS STRING RELACIONADOS CON EXPRESIONES REGULARES Los objetos de tipo String proveen de una serie de métodos útiles. En la siguiente tabla vemos cuáles son, su significado y un ejemplo de uso. Método Signficado Ejemplo de uso match search replace Devuelve un array con las coincidencias encontradas, o null si no hay coincidencias. Devuelve la posición de comienzo de la primera coincidencia dentro del string, o -1 si no hay coincidencia. Recordar que la primera posición posible es cero. Devuelve un nuevo String (sin modificar el original) donde se reemplaza una o varias coincidencias por lo especificado (una cadena o una función que devuelve la cadena). msg = ''; var matches = txt.match(miexpreg); if (matches!= null) { for (var i=0; i<matches.length; i++){ msg = msg + 'Encontrado: '+matches[i]+'\n'; } } else {msg = 'No se encontraron coincidencias';} msg = ''; var posicion = txt.search(miexpreg); if (posicion!= -1) { msg = msg + 'Encontrado patrón en posición: '+posicion+'\n'; } else {msg = 'No se encontraron coincidencias';} msg = ''; var nuevotxt = txt.replace(miexpreg, 'coco'); msg = 'txt vale ' + txt + ' y nuevotxt vale ' +nuevotxt;

Método Signficado Ejemplo de uso split Devuelve un array con las subcadenas resultantes de dividir la cadena original en subcadenas delimitadas por el carácter separador especificado (que queda excluido). Si se indican unas comillas vacías se extraen todos los caracteres a un array. var miexpreg = /\d/g var txt = 'un 3 de bastos gana a un 5 de copas pero no a un 7 de oros'; msg = ''; var splits = txt.split(miexpreg); msg = 'splits contiene ' + splits; USAR PARÉNTESIS PARA AGRUPAR FRAGMENTOS Los paréntesis sirven para agrupar varios caracteres y afectarlos por un carácter especial. Por ejemplo var miexpreg = /(p.s)?to/g var txt = 'el pasto es pisto y eso es todo'; var resultado = txt.match(miexpreg); Hace que resultado contenga ['pasto ', 'pisto ', 'to '] ya que hay un fragmento de la expresión que se ha agrupado e indicado que es opcional. Los paréntesis nos permiten no tener que repetir. Por ejemplo en vez de /estereotipo estereoforma/ podemos escribir /estereo(tipo forma). USAR PARÉNTESIS PARA IDENTIFICAR SUBEXPRESIONES CON MATCH Los paréntesis generan otro efecto. Cuando se invoca la función match buscando la primera coincidencia (es decir, búsqueda no generalizada sin el flag g) y existen subexpresiones entre paréntesis, el array generado guarda en su índice cero la primera coincidencia mientras que en los sucesivos índices guarda las coincidencias de las subexpresiones. Cuando se escribe una expresión regular, los elementos que se incluyen entre paréntesis pueden ser recuperados por separado invocándolos luego como $1, $2, $3. Estas variables persisten normalmente hasta que se invoca una nueva expresión regular. Veámoslo con un ejemplo: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html><head><title>ejemplo aprenderaprogramar.com</title><meta charset="utf-8"> <script type="text/javascript"> function ejemplo() { var expreg = /(\w+)\s(\w+)\s(\w+)/;

var txt = "Era una noche negra y sola"; var newtxt = txt.match(expreg); console.log(newtxt); //Activar la consola para que se visualice var cambiada = newtxt[0].replace(newtxt[3], 'madrugada'); console.log(cambiada); //Activar la consola para que se visualice } </script> </head> <body><div id="cabecera"><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3></div> <div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div> </body></html> El resultado esperado es: Array [ "Era una noche", "Era", "una", "noche" ] "Era una madrugada" Analicemos lo que hace el código: en el array newtxt queda almacenado en su posición cero la coincidencia global con la expresión regular. En su índice uno, queda almacenado el match de la primera subexpresión entre paréntesis, es decir, la primera palabra (sin tildes). En su índice dos, la segunda palabra, y en su índice 3, la tercera palabra. A continuación creamos una cadena formada por las tres palabras con la tercera de ellas reemplazada por madrugada. USAR PARÉNTESIS PARA IDENTIFICAR SUBEXPRESIONES CON REPLACE Dentro de una sentencia replace, los matches de subexpresiones entre paréntesis pueden ser invocadas usando unas variables temporales especiales que se numeran como $1, $2, $3 etc. de acuerdo con la cantidad de subexpresiones entre paréntesis que existan. Este ejemplo nos muestra cómo se pueden usar: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html><head><title>ejemplo aprenderaprogramar.com</title><meta charset="utf-8"> <script type="text/javascript"> function ejemplo() { var expreg = /(\w+)\s(\w+)\s(\w+)/; var txt = "Alberto Flores Rubalcaba: tiene calificación de 10"; var cambiada = txt.replace(expreg, '$3 $2, $1'); console.log(cambiada); //Activar la consola para que se visualice } </script> </head> <body><div id="cabecera"><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3></div> <div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div> </body></html>

En este ejemplo el match de la expresión regular es <<Alberto Flores Rubalcaba>>, y cada palabra es una subexpresión por encontrarse entre paréntesis en la expresión regular. En el replace podemos identificar cada subexpresión como $1 (primera subexpresión), $2 (segunda) y $3 (tercera). En el replace indicamos que la coincidencia de la expresión regular sea sustituida por la cadena formada por la tercera palabra seguida de la segunda, una coma y la primera palabra. De este modo el resultado esperado es que se muestre por consola: "Rubalcaba Flores, Alberto: tiene calificación de 10". EJERCICIO Crea un documento HTML (página web) donde exista un formulario que se envíe por el método GET. Se pedirá al usuario que introduzca nombre, apellidos y correo electrónico. Define dentro de la etiqueta form que cuando se produzca el evento onsubmit (pulsación del botón de envío del formulario) se ejecute una función a la que denominaremos validacionconexpreg que no recibe parámetros. La función validar debe realizar estas tareas y comprobaciones utilizando expresiones regulares: a) Comprobar que el nombre contiene al menos tres letras. Si no es así, debe aparecer un mensaje por pantalla indicando que el texto no cumple tener al menos tres letras. Por ejemplo si se trata de enviar Ka como nombre debe aparecer el mensaje: El nombre no cumple tener al menos tres letras. b) Comprobar que el correo electrónico contiene el carácter @ (arroba) y el carácter. (punto). De no ser así, deberá aparecer un mensaje indicando que al correo electrónico le falta uno o ambos caracteres. Por ejemplo si se trata de enviar pacogmail.com deberá aparecer el mensaje: Falta el símbolo @ en el correo electrónico. c) Antes de enviarse los datos del formulario a la página de destino, todas las letras del correo electrónico deben transformarse a minúsculas. Por ejemplo si se ha escrito PACO@GMAIL.COM debe enviarse paco@gmail.com d) Antes de enviarse los datos del formulario a la página de destino, si el correo electrónico contiene la subcadena at debe reemplazarse por el símbolo @. Por ejemplo si se ha escrito paco at gmail.com debe enviarse paco@gmail.com Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01156E Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&itemid=206