Introducción al desarrollo web (idesweb)

Documentos relacionados
Programación Hipermedia I

Introducción al desarrollo web (idesweb)

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

Introducción al desarrollo web (idesweb)

Programación Hipermedia 1

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

Introducción al desarrollo web (idesweb)

Diseño WEB. Nivel: 5º semestre Horas semanales: 3 horas Código: Créditos: 2 créditos

UNIDAD 1 GENERALIDADES HTML

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

Introducción al desarrollo web (idesweb)

Scripting en el cliente: Javascript. Tecnologías Web

Introducción al desarrollo web (idesweb)

TEMA 3 A: INTRODUCCIÓN AL DOM

Introducción al desarrollo web (idesweb) - 3 a ed.

Introducción al desarrollo web (idesweb)

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

Diseño Web Avanzado con HTML5 y CSS3

Temario Programación Web para Web

ELABORACIÓN DE PÁGINAS WEB. CBTIS No. 02 ISC. RICARDO GARCÍA LÓPEZ

2- Formularios y JavaScript Course: Developing web- based applica=ons

LENGUAJES JÓVENES PROGRAMADORES

Web Service: Consulta de Sistema de Turnos Manual de referencia

Manual de turbo pascal

Programación Hipermedia I

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

Aprender a desarrollar con JavaScript

Tema 3, parte 4. Javascript: el DOM (Modelo de Objetos del. Documento) Texto.

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

Especificaciones para la utilización de la voz en FlexBrowser. El ActiveX voixtreme.

AJAX. Desarrollo de Aplicaciones Distribuidas

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

DESARROLLO WEB EN ENTORNO CLIENTE

Juan Ramón Pérez Pérez

TEMA 5 LA FAMILIA XML EN LA NUEVA WEB

CEFIRE: Curso Administración de APACHE

Diseño y desarrollo Web con HTML 5, CSS y Dreamweaver CS 4

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR

DREAMWEAVER CS4 Código: 3492

ACCESS XP. Objetivos. Duración. 64 horas. Contenidos. Módulo 1: Introducción. Parte 1 Bienvenida Certificado MOUS Resumen

Microsoft Word 2007 Completo

JavaScript,, AJAX y otras tecnologías web. Área de Ingeniería Telemática

Microsoft Word 2003 (Completo)

MICROSOFT WORD AVANZADO. Nº Horas: 18. Objetivos:

Curso de Diseño web. Juan Carlos Hernández Pérez

DISEÑO WEB ADOBE DREAMWEAVER CS3

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

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

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

Guía del Curso Dreamweaver CS 5

Factores de legibilidad de código de barras y OCR

SOLUCION EJERCICIOS VALIDACION DE FORMULARIOS

CONTENIDOS DEL CURSO ONLINE DE DISEÑO Y DESARROLLO WEB CON HTML5, CSS Y DREAMWEAVER CS4:

Parte III: AJAX y REST

GNU/Linux desde la línea de comandos. Pablo Garaizar Sagarminaga (txipi) Alvaro Uría Avellanal (Fermat)

Consulta por Criterio y Expresión

DPWEB I, Carrito de Compras Guardar, Ing. Tomas Urbina. Carrito de compras con PHP y MYSQL

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

1

MATRIZ DE VALORACIÓN O RÚBRICA. Actividad de evaluación:

Unidad II: Lenguaje de marcado

COMO CREAR UN BLOG ACERCA DE ZENZUU

INFORMÁTICA Y COMUNICACIONES

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Guía para Validar la Clave del Registro Federal de Contribuyentes. Versión 1.0

ACCESS 2010 FÁCIL - ONLINE - EN LÍNEA

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

Curso básico de creación de páginas web

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

PHP LUIS JOSÉ SÁNCHEZ GONZÁLEZ

Manual de HTML5 en español. Manual de HTML5 en español. Alejandro Castillo Cantón. Alejandro Castillo

TERCER SEMESTRE PORTAFOLIO DE SEGUNDA OPORTUNIDAD

Taller de Desarrollo de Aplicaciones Web

Curso PHP Módulo 1 R-Luis

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

Tomar información por pantalla con JavaScript

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

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

Los formularios irán delimitados por las etiquetas <FORM> y </FORM>, la cual tiene dos parámetros:

Objetivos. El alumno conocerá los elementos indispensables para crear una página web. 1. Crear una página web básica utilizando html.

PHP: Lenguaje de programación

VALIDACION DE FORMULARIOS

Curso de Lenguaje de programación HTML

Contenido INTRODUCCIÓN... 3 Etapas de validación... 3 OBJETIVOS VALIDADOR FACTURACIÓN ELECTRÓNICA USUARIO

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA. Búsquedas en Google

APRENDE A CREAR UNA PÁGINA WEB CON HTML

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

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

TIPOS DE CAMPOS Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes.

SEGUNDA PARTE: DOM y jquery

Ingeniería Web. Navegadores Web. Fernando Barraza A.

Transformaciones de modelo a texto con Acceleo Curso

Transcripción:

Introducción al desarrollo web (idesweb) Práctica 5: JavaScript: expresiones regulares y el Modelo de Objetos de Documento 1. Objetivos Aprender a manejar el DOM de una página web para manipular su contenido. Aprender a validar un formulario con el lenguaje de programación JavaScript y el empleo de expresiones regulares. 2. Recursos Qué son las expresiones regulares? Cómo se emplean con JavaScript? W3Schools 1 : cursos de aprendizaje y guías de referencia de diversas tecnologías empleadas en la programación web. Incluye un tutorial y temas avanzados sobre JavaScript, expresiones regulares con JavaScript y DOM. Expresión regular 2 : definición de las expresiones regulares según la Wikipedia. JavaScript Regular Expressions 3 : resumen de la sintaxis de las expresiones regulares en JavaScript. Programmer s Guide to Regular Expressions 4 : tutorial sobre las expresiones regulares en JavaScript. JavaScript RegExp Example: Regular Expression Tester 5 : permite comprobar el funcionamiento de una expresión regular en JavaScript sin tener que programar. Regular Expressions Cheat Sheet 6 : resumen en una sola cara de lo más importante de las expresiones regulares. Qué es el DOM? W3C Documento Object Model (DOM) 7 : especificación oficial del DOM según el W3C. Mozilla Developer Center Gecko DOM Reference 8 : guía de referencia de los objetos del DOM disponible en el motor Gecko empleado por varios navegadores web como Mozilla Firefox. Support for DOM2 Core and XML modules in Opera 9 y DOM 2 HTML Objects supported in Opera 10 : objetos, propiedades y métodos del DOM que admite el navegador Opera. Cómo puedo explorar el DOM de una página web? DOM Inspector 11 : permite explorar y editar el DOM de una página web. 1 http://www.w3schools.com 2 http://es.wikipedia.org/wiki/expresión_regular 3 http://www.visibone.com/regular-expressions/ 4 http://www.javascriptkit.com/javatutors/redev.shtml 5 http://www.regular-expressions.info/javascriptexample.html 6 http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/ 7 http://www.w3.org/dom/ 8 http://developer.mozilla.org/en/gecko_dom_reference 9 http://www.opera.com/docs/specs/js/ecma/dom/index.dml 10 http://www.opera.com/docs/specs/js/ecma/dom/html/index.dml 11 http://developer.mozilla.org/en/dom_inspector 1

3. Qué tengo que hacer? En esta práctica tienes que emplear las expresiones regulares de JavaScript para validar el formulario de registro como nuevo usuario que has realizado en las prácticas anteriores (sustituye el código de validación implementado en la práctica anterior). En concreto, tienes que programar las siguientes restricciones: Página con el formulario de registro como nuevo usuario Contiene un formulario con los datos necesarios para registrarse (nombre de usuario, contraseña, repetir contraseña, dirección de email, sexo, fecha de nacimiento, ciudad y país de residencia, foto). Antes de enviar el formulario, debes realizar las siguientes comprobaciones: nombre de usuario: sólo puede contener letras del alfabeto inglés (en mayúsculas y minúsculas) y números; longitud mínima 3 caracteres y máxima 15. contraseña: sólo puede contener letras del alfabeto inglés (en mayúsculas y minúsculas), números y el subrayado; al menos debe contener una letra en mayúsculas, una letra en minúsculas y un número; longitud mínima 6 caracteres y máxima 15. repetir contraseña: su valor debe coincidir con el escrito en el campo contraseña. dirección de email: no puede estar vacío, hay que comprobar que cumple el patrón de una dirección de email (compuesto de cualquier carácter alfanumérico del alfabeto inglés, el subrayado, el guión y el punto; no permitir dominios principales de menos de 2 caracteres y más de 4 caracteres). sexo: se debe elegir un valor. fecha de nacimiento: comprobar que es una fecha válida. El resto de campos no indicados se pueden quedar vacíos. Además, tienes que permitir que el usuario pueda ordenar, de forma ascendente y descendente, el listado resultado de una búsqueda de fotos por los campos título, fecha y país. El proceso de ordenación se tiene que realizar en la misma página mediante JavaScript, sin recargarla. 4. Cómo lo hago? Una expresión regular es un patrón que define un conjunto de cadenas sin enumerar todos sus elementos. Una expresión regular está formada de caracteres y metacaracteres que tienen una función definida. La principal utilidad de las expresiones regulares es la de describir un conjunto de cadenas, lo que resulta de utilidad en editores de texto y aplicaciones para buscar y manipular texto. Además, otro uso es la validación de un formato específico en una cadena de caracteres dada, como por ejemplo fechas, correos electrónicos o identificadores. En JavaScript existen dos formas de definir una expresión regular: mediante una cadena literal y mediante el constructor de objeto RegExp. Una expresión regular se puede aplicar a diferentes cadenas mediante expreg.test(cadena), que devuelve true si cadena cumple expreg y false en caso contrario. Por ejemplo, en el siguiente código se comprueba si el usuario ha escrito correctamente una matrícula de automóvil que debe seguir el patrón código del país (1 o 2 letras), un espacio en blanco, numeración (4 dígitos), un espacio en blanco y letras (3 letras, empezando en BBB y acabando en ZZZ, sin las vocales): <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>validación con expresión regular</title> <script type="text/javascript"> function literal() { var m = document.getelementbyid("matricula").value; var expreg = /^[A-Z]{1,2}\s\d{4}\s([B-D] [F-H] [J-N] [P-T] [V-Z]){3}$/; if(expreg.test(m)) 2

} alert("la matrícula es correcta"); else alert("la matrícula NO es correcta"); function objeto() { var m = document.getelementbyid("matricula").value; var expreg = new RegExp("^[A-Z]{1,2}\\s\\d{4}\\s([B-D] [F-H] [J-N] [P-T] [V-Z]){3}$"); if(expreg.test(m)) alert("la matrícula es correcta"); else alert("la matrícula NO es correcta"); } </script> </head> <body> <form id="miform" action="" method="get"> <p> Matrícula: <input type="text" id="matricula" /> <br /> <input type="button" value="literal" onclick="literal()" /> <input type="button" value="objeto" onclick="objeto()" /> </p> </form> </body> </html> Al usar la expresión regular con el objeto RegExp, como se escribe dentro de una cadena es necesario escribir dos barras invertidas \\ para representar una barra invertida, ya que el carácter barra invertida se emplea para escapar los caracteres especiales. Cuando se emplea mediante una cadena literal no se debe escapar la barra invertida. Qué significa cada elemento de la expresión regular de este ejemplo? ^: el emparejamiento se debe realizar desde el principio de la cadena. [A-Z]: cualquier carácter entre la A mayúscula y la Z mayúscula. {1,2}: uno o dos caracteres. \s: un espacio en blanco. \d: un dígito. {4}: cuatro dígitos. \s: un espacio en blanco. ([B-D] [F-H] [J-N] [P-T] [V-Z]): cualquier carácter entre la B mayúscula y la Z mayúscula, excepto las vocales. {3}: tres caracteres. $: el emparejamiento se debe realizar hasta el final de la cadena. Con esta expresión regular podemos tener matrículas desde A 1111 BBB hasta ZZ 9999 ZZZ. Por otro lado, el DOM (Document Object Model) es un API destinado a trabajar con documentos HTML y XML. El DOM proporciona una representación en forma de árbol de un documento y permite su manipulación (añadir un elemento nuevo, borrar un elemento, mover un elemento de sitio). Algunas funciones útiles del DOM: document.getelementbyid(id): devuelve el elemento con el identificador indicado. 3

elemento.getelementsbytagname(etiqueta): devuelve un array de elementos con la etiqueta indicada, los elementos se buscan a partir de elemento. document.createelement(etiqueta): crea un nuevo elemento según la etiqueta indicada. elementopadre.appendchild(elementonuevo): añade elementonuevo a elementopadre al final de su lista de elementos hijo. elementopadre.insertbefore(elementonuevo, elementoreferencia): añade elementonuevo en la lista de elementos hijo de elementopadre antes de elementoreferencia. El siguiente ejemplo muestra cómo se pueden añadir párrafos de texto nuevos a una página web con el texto que introduzca el usuario: <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>validación con expresión regular</title> <script type="text/javascript"> function nuevotexto() { // Obtiene el div que tiene id="parrafos" var d = document.getelementbyid("parrafos"); // Crea un nuevo elemento de tipo párrafo var np = document.createelement("p"); // Inserta el texto en el contenido del nuevo párrafo np.textcontent = document.getelementbyid("texto").value; // Añade el párrafo al final de los elementos que contenga el div d.appendchild(np); return false; } </script> </head> <body> <form id="miform" action="" method="get" onsubmit="return nuevotexto()" > <p> Texto: <input type="text" id="texto" /> <br /> <input type="submit" value="añade texto" /> </p> </form> <div id="parrafos"> <!-- Inicialmente vacío --> </div> </body> </html> 5. Recomendaciones Las expresiones regulares son un mecanismo de programación muy potentes, pero esa potencia origina que sean complejas de utilizar. Comienza a trabajar con expresiones regulares sencillas y poco a poco intenta escribir expresiones más complejas. 4

Para ordenar los elementos de una lista puedes emplear diferentes algoritmos de ordenación. En la página The Art of Web: JavaScript 12 puedes ver la implementación de los más conocidos: bubble sort, insertion sort, shell sort y quick sort. 12 http://www.the-art-of-web.com/javascript/ 5