JavaScript: Expresiones regulares

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

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Expresiones regulares en STklos

PHP: Lenguaje de programación

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Principios de Computadoras II

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Expresiones regulares y distancia de edición.

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

Datos y tipos de datos

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

El lenguaje C. 1. Identificadores, constantes y variables

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Lección 2 Introducción al lenguaje C

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

INICIACIÓN A LA PROGRAMACIÓN II

Mysql. <? PhP?> EL php necesita que un servidor web con capacidad php sea instalado y ejecutado para poder ejecutar las páginas php.

Manual de turbo pascal

SINTAXIS DE BÚSQUEDA PARA

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

Ficha de Aprendizaje N 13

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Ingeniería de Sistemas

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

UNIDAD 1 GENERALIDADES HTML

MANEJO DE EXPRESIONES REGULARES

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Scripting en el cliente: Javascript. Tecnologías Web

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Sintaxis del Analizador de consultas Lucene

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]*

m022a Curso Programación Avanzada con Visual Basic 2010, 24 h

Introducción a Java LSUB. 30 de enero de 2013 GSYC

4. Operadores Operador asignación

GUÍA DE ESTILO EN JAVA

Elementos léxicos del lenguaje de programación Java

Computación II. Introducción a Visual Basic

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

CEFIRE: Curso Administración de APACHE

Java para programadores

Generador de analizadores léxicos FLEX

2.2 Nombres, Ligado y Ámbito

Curso de Programación Avanzada en C

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Pruebas de escritorio

Elementos de un programa en C

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Tema 2. El lenguaje JAVA

Sintaxis básica, variables y 7pos

Tema IV El lenguaje de programación PHP Tipos de Datos

Elementos léxicos del lenguaje de programación C

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e intérpretes

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

Tema 3.- Predicados y sentencias condicionales

GUÍA BÁSICA DE SCHEME v.4

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

Temario Programación Web para Web

ESCUELA DE INFORMÁTICA

Hoja de ejercicios del Tema 3

Lenguaje de Programación

Informática Ingeniería en Electrónica y Automática Industrial

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

Programación Hipermedia I

Academia técnica de computación A.T.C.

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

LENGUAJES JÓVENES PROGRAMADORES

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Funciones & Estructuras de control

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

Lenguajes y Gramáticas

LECTOESCRITURA. Vocal i minúscula y mayúscula Ficha 1. Vocal u minúscula y mayúscula Ficha 1. Ficha 2. Ficha 2. Ficha 3. Ficha 3

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Operación de Microsoft Excel. Guía del Usuario Página 49. Centro de Capacitación en Informática

INSTITUCIÓN EDUCATIVA COLEGIO NUESTRA SEÑORA DEL PILAR DANE: Licencia de funcionamiento resolución N del 08 de octubre 2007

Programación en java. Estructuras algorítmicas

Herramientas computacionales para la matemática MATLAB: Cómo guardar el trabajo?

Algoritmos y programas. Algoritmos y Estructuras de Datos I

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT

MATERIAL INTRODUCTORIO ORACLE 11G

LENGUAJE. Tema 2 Elementos de un programa

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

Diseño Web Avanzado con HTML5 y CSS3

HERRAMIENTAS DE MICROSOFT WORD 2010

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Formato de párrafo Un párrafo es, en principio, cada una de las divisiones del texto que comienza por una letra en mayúscula y termina con un punto y

PASOS PARA CREAR FUNCIONES CON VBA

5. Sentencias selectivas o condicionales

Fundamentos de Programación 2017-I

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

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

Una fórmula relaciona valores o datos entre sí a través de

MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C

TIPOS DE DATOS EN ABAP

REFERENCIA DEL LENGUAJE

Guía del Curso Experto en Microsoft Excel 2016, VBA y Business Intelligence

Transcripción:

Departamento de Lenguajes y Sistemas Informáticos JavaScript: Expresiones regulares Programación en Internet Curso 2009-2010 Algunas personas cuando se enfrentan a un problema piensan "Ya sé, usaré expresiones regulares!" Ahora tienen dos problemas. Jamie Zawinski, programador de Netscape Navigator 1.11 DLSI - Universidad de Alicante 1

Índice Expresiones regulares en JavaScript Ejemplos Una expresión regular es un patrón que se emplea para compararlo con un grupo de caracteres Según la Wikipedia: Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón "H(a ä ae)ndel". DLSI - Universidad de Alicante 2

Las expresiones regulares se pueden emplear en: Comandos de sistemas operativos, como sed y grep en Linux Editores de texto como emacs Lenguajes de programación, de forma nativa como JavaScript, PHP, awk y Perl, o a través de librerías como Java o.net Básicamente, existen dos estilos de expresiones regulares que en algunos aspectos son iguales Una expresión regular es un patrón que puede estar formado por un conjunto de caracteres (letras, números o signos) y por un conjunto de metacaracteres que representan otros caracteres o que indican la forma de combinar los caracteres Los metacaracteres reciben este nombre porque no se representan a ellos mismos, sino que son interpretados de una manera especial DLSI - Universidad de Alicante 3

Los metacaracteres más usados son:. *?+[](){}^$ ^: Sirve para indicar que el patrón que lo acompaña esta al principio de la cadena. $: Indica que el patrón esta al final de una cadena..: Representa cualquier carácter. *: El patrón que lo precede se repite 0 o mas veces.?: El patrón se repite 0 o 1 vez. +: El patrón se repite 1 o mas veces. {x,y}: El patrón se repite un mínimo de x veces y un máximo de y. : Sirve para alternar expresiones. Los corchetes [] incluidos en un patrón permiten especificar el rango de caracteres válidos a comparar. [abc] // El patrón coincide con la cadena si en esta hay // cualquiera de estos tres carácteres: a, b, c [a-c] // Coincide si existe una letra en el rango ("a", "b" o "c") c[ao]sa // Coincide con casa y con cosa [^abc] // El patrón coincide con la cadena si en esta NO hay ninguno // de estos tres carácteres: a, b, c. // Nota que el signo ^ aquí tiene un valor excluyente [0-9] // Coincide con una cadena que contenga cualquier // número entre el 0 y el 9 DLSI - Universidad de Alicante 4

(): Los paréntesis sirven para agrupar expresiones regulares. : Sirve para alternar expresiones. Por ejemplo: (la el): coincide si esta presente la o el. Para escapar caracteres especiales debemos usar la clásica barra invertida \. Por ejemplo si buscamos 100$, pondríamos 100\$, ya que si pusiéramos 100$ buscaría un 100 a final de cadena. Patrón Significado. cualquier carácter (excepto \n y \r) ^c empezar por el carácter c c$ terminar por el carácter c c+ 1 o más caracteres c c* 0 o más caracteres c c? 0 o 1 caracteres c \n nueva línea \t tabulador \ (cd) c d c{n} c{n,} c{n,m} escape, para escribir delante de caracteres especiales: ^. [ ] % ( ) *? { } \ caracteres c y d agrupados carácter c o d n veces el carácter c n o más caracteres c desde n hasta m caracteres c DLSI - Universidad de Alicante 5

Patrón Significado [a-z] cualquier letra minúscula [A-Z] cualquier letra mayúscula [0-9] cualquier dígito [cde] cualquiera de los caracteres c, d o e [c-f] cualquier letra entre c y f (es decir, c, d, e o f) [^c] \w que no esté el carácter c cualquier letra o dígito o subrayado (pero no vocales acentuadas, ñ, ç, etc.) \W lo contrario de \w \d cualquier dígito \D lo contrario de \d \s cualquier espacio en blanco \S lo contrario de \s \b \B busca un emparejamiento a partir de un límite de palabra busca un emparejamiento cuando no es un límite de palabra Expresiones regulares en JavaScript Podemos crear una ER de dos formas: /* Permite crear expresiones regulares en tiempo de ejecución */ var txt=new RegExp(pattern,attributes); /* Crea expresiones regulares estáticas, no se pueden modificar durante la ejecución */ var txt=/pattern/attributes; / DLSI - Universidad de Alicante 6

Expresiones regulares en JavaScript Los atributos son: m: Si nuestra cadena contiene varias líneas físicas (\n) respeta esos saltos de línea, lo que significa, por ejemplo, que las anclas ^ $ no se aplican al principio y final de la cadena, sino al principio y final de cada línea. i: Se confronta el patrón con la cadena ignorando mayusculas y minúsculas. g: Realiza una búsqueda global, no se detiene en la primera ocurrencia que encuentra. Expresiones regulares en JavaScript Métodos del objeto RegExp: compile(): cambia la expresión regular del objeto exec(): busca la ER, devuelve el valor encontrado y recuerda la posición test(): busca la ER, devuelve true o false DLSI - Universidad de Alicante 7

Expresiones regulares en JavaScript Además, el objeto String tiene unos métodos que admiten ER: search(): busca en una cadena la ER, devuelve la posición match(): busca en una cadena la ER, devuelve un array con los valores emparejados replace(): sustituye unos caracteres por otros caracteres split(): divide una cadena en un array de cadenas Ejemplos Valida una matrícula moderna: function validamatricula() { var mat = document.getelementbyid("matricula").value; var ex1 = new RegExp("^[0-9]{4} [A-Z]{3}$"); var ex2 = /^[0-9]{4} [A-Z]{3}$/; if(ex1.test(mat)) alert("ok"); else alert("error"); } if(ex2.test(mat)) alert("ok"); else alert("error"); DLSI - Universidad de Alicante 8

Ejemplos Valida una fecha (sólo el formato): function validafecha() { var fec = document.getelementbyid("fecha").value; var ex1 = new RegExp("^(0?[1-9] [12][0-9] 3[01])\/(0?[1-9] 1[012])\/[0-9]{1,2}$"); var ex2 = /^(0?[1-9] [12][0-9] 3[01])\/(0?[1-9] 1[012])\/[0-9]{1,2}$/; if(ex1.test(fec)) alert("ok"); else alert("error"); if(ex2.test(fec)) alert("ok"); else alert("error"); } DLSI - Universidad de Alicante 9