Tema 14 IISSI 2 BP
|
|
Título del Test:
![]() Tema 14 IISSI 2 BP Descripción: Arevalo ponme el 5 |



| Comentarios |
|---|
NO HAY REGISTROS |
|
¿Para qué es fundamental validar los datos introducidos por el usuario en un formulario web?. Para evitar que llegue a la base de datos información incorrecta que provoque incoherencias. Para evitar amenazas que pongan en riesgo la seguridad del sistema. Para asegurar que el diseño del formulario sea responsivo. Para mejorar la velocidad de carga de la página. Para traducir automáticamente los datos a diferentes idiomas. ¿Cuál es un uso principal de las expresiones regulares (RegEx)?. Definir un patrón de cadena que puede buscarse o reemplazarse dentro de un texto. Para escribir código HTML más semántico. Para gestionar la comunicación asíncrona con el servidor. Para optimizar las consultas a bases de datos. Para crear animaciones complejas en la web. ¿Cómo se define la sintaxis básica de una expresión regular?. flags/patrón/. /patrón/flags. patrón(flags). RegExp(patrón, flags) (Esta es una forma de crearla en JS, pero la sintaxis general es con barras). <regex pattern="patrón" flags="flags"/>. ¿Cuáles de los siguientes son caracteres reservados en expresiones regulares con significados concretos?. . (representa cualquier carácter excepto fin de línea por defecto). +, *, ? (son cuantificadores). ^, $ (representan principio/final de la cadena/línea). @, #, & (se usan para comentarios). \ (se utiliza para metacaracteres y escape). ¿Cómo se puede hacer que un carácter reservado se interprete como un literal en una expresión regular?. Encerrándolo entre comillas simples. Escapándolo con una barra invertida \ (ej. \. representa el carácter '.'). Escribiéndolo en mayúsculas. Colocándolo al inicio del patrón. Usando una entidad HTML (ej. &punto;). ¿Qué representan los siguientes metacaracteres?. \w: Cualquier carácter alfanumérico o guion bajo. \d: Cualquier dígito. \s: Espacios (incluye tabulaciones y saltos de línea). \a: Cualquier letra mayúscula. \b: Principio/fin de palabra. ¿Para qué se utilizan los corchetes [] en las expresiones regulares?. Para indicar rangos de caracteres válidos (ej. [a-z]). Para encontrar cualquiera de los caracteres dentro de los corchetes (ej. [abc]). Para encontrar cualquier carácter que NO esté dentro de los corchetes si se usa ^ al inicio (ej. [^abc]). Para agrupar partes de la expresión para aplicar cuantificadores a todo el grupo. (Eso se hace con paréntesis ()). Para definir comentarios dentro de la expresión. ¿Qué significa el cuantificador * después de un patrón p (es decir, p*)?. El patrón p debe aparecer exactamente una vez. El patrón p puede aparecer cualquier número de veces, incluyendo cero (0..N). El patrón p debe aparecer al menos una vez (1..N). El patrón p puede aparecer cero o una vez (0..1). El patrón p debe aparecer X veces. ¿Qué especifican los siguientes cuantificadores?. p+: Al menos una vez p (1..N). p?: Cero o una vez p (0..1). p{X}: Exactamente X veces p. p{X,Y}: Entre X e Y veces p (ambos inclusive). p!: Ninguna vez p. ¿Cuál es la función de los paréntesis () en las expresiones regulares (cuando no están escapados)?. Para definir grupos de captura, regiones de interés de las que queremos guardar su contenido. Para indicar alternativas (eso se hace con | dentro o fuera de un grupo). Para especificar rangos de caracteres (eso se hace con []). Para comentar partes de la expresión regular. Para hacer que la búsqueda sea opcional. ¿Qué efecto tienen los siguientes modificadores (flags)?. /i (case-insensitive): No distingue entre mayúsculas/minúsculas. /g (global): Busca todas las apariciones del patrón. /m (multiline): Afecta al comportamiento de ^ y $ para que coincidan con el inicio/final de cada línea, no solo del texto completo. /s (strict): Realiza una búsqueda más estricta del patrón. /u (URL): Optimiza la búsqueda para URLs. ¿Qué es importante tener en cuenta sobre las "RegEx flavors"?. Cada "flavor" (sabor) suele estar vinculado a un lenguaje o motor de RegEx. Pueden variar en sintaxis, modificadores aceptados y cómo entienden "la cadena más larga". Todas las "flavors" son 100% compatibles entre sí. La "flavor" de JavaScript es la base para todas las demás. Solo afectan al rendimiento, no al resultado de la coincidencia. ¿Cómo se puede usar una expresión regular para validar un campo de entrada en HTML5?. Usando el atributo regex en el elemento <input>. Usando el atributo pattern en el elemento <input> (ej. <input type="text" pattern="\d{5}"/>). Mediante la etiqueta <regex> anidada dentro del <input>. A través de una regla CSS con el selector input[regex="..."]. HTML5 no permite validación con expresiones regulares directamente en los atributos. ¿De qué dos formas se pueden declarar expresiones regulares en JavaScript?. Notación literal: /patrón/modificadores (ej. let re = /\d{5}/gm;). Mediante el constructor RegExp: new RegExp("patrón", "modificadores") (ej. let re = new RegExp("\d{5}", "gm");). Usando la función String.toRegExp("patrón", "modificadores"). A través de document.createRegExp(/patrón/modificadores). Con la palabra clave regex /patrón/modificadores;. ¿Qué hace el método cadena.match(regex) de la clase String en JavaScript?. Devuelve true si regex coincide con cadena, false en caso contrario. Devuelve null si no encuentra el patrón definido por regex dentro de la cadena. Si lo encuentra, devuelve un array con información sobre la coincidencia (y grupos de captura si los hay). Reemplaza las coincidencias de regex en cadena con un nuevo texto. Devuelve el índice de la primera coincidencia. ¿Qué método de la clase RegExp en JavaScript devuelve true si encuentra alguna coincidencia del patrón dentro de la cadena y false en caso contrario?. regex.exec(cadena). regex.test(cadena). regex.search(cadena). regex.match(cadena). regex.contains(cadena). En JavaScript, si se tiene la expresión regular let regex_dni = /\d{8}[A-Z]/; paravalidar un DNI, ¿por qué la cadena "!+-_12345678A......" sería consideradaválida por regex_dni.test("!+-_12345678A......") por defecto?. Porque en JS, todos los métodos de expresiones regulares buscan la expresión regular en cualquier parte de la cadena por defecto. Porque el flag g está implícitamente activo. Debido a un error en la definición de regex_dni. Porque test() siempre devuelve true si hay algún dígito o letra. Esto no sucedería, la cadena no sería válida. ¿Cómo se soluciona el problema anterior para asegurar que toda la cadena coincida con el patrón del DNI?. Añadiendo el flag x (exacto). Usando los metacaracteres ^ y $ para indicar principio y final de la cadena (ej. /^\d{8}[A-Z]$/). Usando el método regex.fullTest(cadena). Envolviendo toda la expresión en un grupo de no captura (?:...). Utilizando el método cadena.fullMatch(regex). Cuando se usa cadena.match(re_date) y re_date tiene grupos de captura (ej./(\d{1,2})\/(\d{1,2})\/(\d{4})/), ¿qué contiene el array resultante si hay una coincidencia?. La posición 0 del array está siempre reservada para la coincidencia con la expresión completa. Las posiciones subsiguientes (1, 2, 3, ...) contienen las cadenas capturadas por cada grupo, en orden de definición en la RegEx. El array solo contiene los grupos de captura, sin la coincidencia completa. Cada elemento del array es un objeto con propiedades index y value. El array contiene true o false dependiendo de si cada grupo coincidió. ¿En qué situaciones las expresiones regulares podrían no ser la herramienta más adecuada, según las conclusiones del documento?. Para validar formatos simples de cadenas. Especialmente para validaciones más complejas y restricciones numéricas (donde puede ser más claro o eficiente usar lógica de programación tradicional después de una extracción básica). Para extraer información de texto no estructurado. Para realizar reemplazos simples de texto. Las expresiones regulares son siempre la mejor opción para manipulación de cadenas. |





