Skip to content

Commit 0d29a13

Browse files
authored
Merge pull request #7922 from adrs1166ma/main
#16 - javascript
2 parents 239cae7 + 6aee9ba commit 0d29a13

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/* 🔥 EJERCICIO:
2+
Utilizando tu lenguaje, explora el concepto de expresiones regulares,
3+
creando una que sea capaz de encontrar y extraer todos los números
4+
de un texto.
5+
*/
6+
const texto = "El precio es de 123 euros, pero con un descuento del 15%. Además, hay 4 productos disponibles.";
7+
8+
// Expresión regular para encontrar números
9+
const regexNumeros = /\d+/g;
10+
11+
// Extraer números del texto
12+
const numeros = texto.match(regexNumeros);
13+
14+
console.log("Números encontrados:", numeros);
15+
// Números encontrados: (3) ['123', '15', '4']
16+
17+
/*
18+
Dictionary 📗 [ /\d+/g ] = {
19+
\d: Coincide con cualquier dígito (0-9).
20+
+: Indica que debe coincidir con uno o más dígitos consecutivos.
21+
g: Modificador global que busca todas las coincidencias en el texto (no solo la primera).
22+
}
23+
*/
24+
//------------------------------------------------------------------------------------------------------------
25+
//------------------------------------------------------------------------------------------------------------
26+
27+
/* 🔥 DIFICULTAD EXTRA (opcional):
28+
Crea 3 expresiones regulares (a tu criterio) capaces de:
29+
- Validar un email.
30+
- Validar un número de teléfono.
31+
- Validar una url.
32+
*/
33+
34+
function validarEmail(email) {
35+
const regexEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
36+
return regexEmail.test(email);
37+
}
38+
39+
function validarTelefono(telefono) {
40+
const regexTelefono = /^\+?\d{1,3}?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$/;
41+
return regexTelefono.test(telefono);
42+
}
43+
44+
function validarURL(url) {
45+
const regexURL = /^(https?:\/\/)?([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(\/.*)?$/;
46+
return regexURL.test(url);
47+
}
48+
49+
console.log("¿Es válido el email 'usuario@example.com'?", validarEmail("usuario@example.com"))
50+
console.log("¿Es válido el email 'usuario@.com'?", validarEmail("usuario@.com"))
51+
// ¿Es válido el email 'usuario@example.com'? true
52+
// ¿Es válido el email 'usuario@.com'? false
53+
54+
console.log("¿Es válido el teléfono '+51-999-999-999'?", validarTelefono("+51-999-999-999"))
55+
console.log("¿Es válido el teléfono '123'?", validarTelefono("123"))
56+
// ¿Es válido el teléfono '+51-999-999-999'? true
57+
// ¿Es válido el teléfono '123'? false
58+
59+
console.log("¿Es válida la URL 'https://www.example.com'?", validarURL("https://www.example.com"))
60+
console.log("¿Es válida la URL 'www.example'?", validarURL("www.example"))
61+
// ¿Es válida la URL 'https://www.example.com'? true
62+
// ¿Es válida la URL 'www.example'? true
63+
64+
65+
/*
66+
Dictionary 📗 [ expresiones regulares ] = {
67+
regexEmail : {
68+
^[a-zA-Z0-9._%+-]+: Parte local del email (antes del @), permite letras, números y caracteres especiales como ., _, %, +, -.
69+
@[a-zA-Z0-9.-]+: Dominio del email, permite letras, números, puntos (.) y guiones (-).
70+
\.[a-zA-Z]{2,}$: Extensión del dominio (ejemplo: .com, .es), debe tener al menos 2 caracteres.
71+
}
72+
regexTelefono : {
73+
^\+?: Opcionalmente comienza con un + (indicador de país).
74+
\d{1,3}?: Código de país (1 a 3 dígitos).
75+
[-.\s]?: Separadores opcionales (-, ., espacio).
76+
\(?\d{1,4}\)?: Código de área opcionalmente entre paréntesis.
77+
\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}$: Número principal, separado en partes.
78+
}
79+
regexURL : {
80+
^(https?:\/\/)?: Protocolo opcional (http:// o https://).
81+
[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}: Dominio y extensión (ejemplo: example.com).
82+
(\/.*)?$: Ruta opcional después del dominio.
83+
}
84+
}
85+
*/

0 commit comments

Comments
 (0)