Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nah clase7 #64

Open
wants to merge 2 commits into
base: feat/n-a-h
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
20 changes: 20 additions & 0 deletions alumnos/nah/Clase7/ejercicio10.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
*Crear una función que valide que el formato de una contraseña es válido. Un contraseña debe contener:

Entre 8 y 16 caracteres
Al menos una letra minúscula
Al menos una letra mayúscula
Al menos un número
Puede contener símbolos no alfanuméricos.
*/


const regexp = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W?)(?=.{8,16}$).*$/g
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stack overflow! 😬


console.assert( regexp.test('gR7<`(hj'), true );

console.assert( regexp.test('e2Ej7sGw_UTx;'), true );

console.assert( regexp.test('ywr,:3V>)^,Cz23?4o'), false ); //mas larga de 16

console.assert( regexp.test('https:es.stackoverflow.com/'), false )
25 changes: 25 additions & 0 deletions alumnos/nah/Clase7/ejercicio12.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/**
* [HARDCORE Level] Obtener a partir del html de la página web de Fictizia los nombres y fotos
* de los profesores. Usar la función proporcionada para getProfesores para obtener el HTML de
* la web. El resultado debe ser un array de objetos. Cada objeto contendrá las propiedades nombre
* e imagen.
*/

const regexName = /<h3>([A-Z][a-z]+ [A-Z][a-z]+)<\/h3>/g
const regexURL= /(https:\/\/www.fictizia.com\/app\/images\/[a-z]+[-][a-z]+.jpeg)/g
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aquí hay una cosa muy triste, estarías marginando a todas las personas cuyo nombre tenga tildes 😢

let profesoresObject= [];

async function getProfesores() {
const response = await fetch('https://www.fictizia.com/profesorado');
return response.text();
}
const profesores = await getProfesores();

let resultURL = regexURL.exec(profesores);
let resultName = regexName.exec(profesores);
while (resultName !== null && resultURL !== null) {
profesoresObject.push({'name': resultName[1], 'imagen': resultURL[1]});
resultURL = regexURL.exec(profesores);
resultName = regexName.exec(profesores);
}
console.log(profesoresObject)
6 changes: 6 additions & 0 deletions alumnos/nah/Clase7/ejercicio6.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*
6 Crear una función que utilice una expresión regular para identificar si el parámetro str que recibe es la letra de la intro de la serie Batman de los 60. Dicha letra, de dificultad manificestat, dice lo siguiente: Na na na na na na na na na na na na na na na na... ¡BATMAN!. Debe ser case insensitive
*/

const regext = /^(na ){15}na... ¡BATMAN!$/gi
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vamoh ya!

console.assert(regext.test ('Na na na na na na na na na na na na na na na na... ¡BATMAN!'), true);
14 changes: 14 additions & 0 deletions alumnos/nah/Clase7/ejercicio7.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
//7. Crear una función que utilice una expresión regular para identificar si el parametro str que recibe es una dirección MAC o no. Una dirección MAC se compone de 6 pares de caracteres hexadecimales separados por :.
*/

const regexp = /^[\da-f][\da-f]:[\da-f][\da-f]:[\da-f][\da-f]:[\da-f][\da-f]:[\da-f][\da-f]:[\da-f][\da-f]$/gi


console.assert( regexp.test('01:32:54:67:89:AB'), true );

console.assert( regexp.test('0132546789AB') , false); // sin separadores

console.assert( regexp.test('01:32:54:67:89'), false ); // 5 números, deben ser 6

console.assert( regexp.test('01:32:54:67:89:ZZ'), false ) // Las ZZ finales no son hexadecimales
16 changes: 16 additions & 0 deletions alumnos/nah/Clase7/ejercicio8.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Ejercicio: 8. Crear una expresión regular que valide que un DNI/NIE tiene formato válido. Un DNI se compone de 8 números seguidos de una letra mayúscula. Un NIE se compone de un primer caracter que puede ser X,Y o Z seguido de 7 números y acaba en una letra mayúscula. Puede llevar o no un guión antes de la última letra.
*/

const regexp = /^([xyz](\d){7}|\d{8})-?[a-z]$/gi
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cuidado aquí con el |, ahora mismo soportas una x seguida de 8 números 😅



console.assert( regexp.test('F2345678-Y'), false ); //no es una X Y o Z

console.assert( regexp.test('X2345678-Y'), true );

console.assert( regexp.test('05123456-Y'), true);

console.assert( regexp.test('051F3456-Y'), false ); // no hay letras entremedias

console.assert( regexp.test('X0513456'), false ) // falta la letra del final
17 changes: 17 additions & 0 deletions alumnos/nah/Clase7/ejercicio9.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
*9. Crear una función que valide que una URL es correcta. Vamos a asumir que las urls pueden contener caracteres alfanuméricos, guiones y puntos.

*/

const regexp = /^https?:\/\/(\w)+[.-]*?(\w)*?.(com|es)/gi
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

genial! sólo un detalle, más que especificar sufijos de dominios completos, lo suyo es que indiques simplemente que van de 2 a 4 caracteres



console.assert( regexp.test('https://es.stackoverflow.com'), true );

console.assert( regexp.test('http://es.stackoverflow.com'), true );

console.assert( regexp.test('es.stackoverflow.com'), false);

console.assert( regexp.test('https://es.stackoverflow'), false );

console.assert( regexp.test('https:es.stackoverflow.com/'), false )