1
+ // Ejercicio de Expresiones Regulares en JavaScript
2
+
3
+ // Texto de ejemplo para probar todas las expresiones regulares
4
+ const textoEjemplo = `Hola, tengo 25 años y mi número de teléfono es 123-456-789.
5
+ También puedes contactarme al +34 611 222 333 o por email a [email protected] .
6
+ Visita mi página web en https://www.ejemplo.com para más información.
7
+ Hay 42 razones para usar expresiones regulares y 100 formas de aplicarlas.` ;
8
+
9
+ /**
10
+ * 1. Función para encontrar y extraer todos los números de un texto
11
+ * Utiliza la expresión regular \b\d+\b que significa:
12
+ * \b - límite de palabra
13
+ * \d+ - uno o más dígitos
14
+ * \b - otro límite de palabra
15
+ */
16
+ function extraerNumeros ( texto ) {
17
+ const patron = / \b \d + \b / g;
18
+ const numerosEncontrados = texto . match ( patron ) ;
19
+
20
+ console . log ( '1. Números encontrados:' ) ;
21
+ numerosEncontrados . forEach ( numero => console . log ( numero ) ) ;
22
+ }
23
+
24
+ /**
25
+ * 2. Función para validar un email
26
+ * Utiliza una expresión regular que verifica:
27
+ * ^ - inicio de la cadena
28
+ * [\w.-]+ - uno o más caracteres de palabra, puntos o guiones
29
+ * @ - símbolo @
30
+ * [\w-]+ - uno o más caracteres de palabra o guiones
31
+ * \. - un punto literal
32
+ * [\w-]+ - dominio de nivel superior
33
+ * (\.[a-zA-Z]{2,})?$ - opcional: punto seguido de 2 o más letras, fin de cadena
34
+ */
35
+ function validarEmail ( email ) {
36
+ const patronEmail = / ^ [ \w . - ] + @ [ \w - ] + \. [ \w - ] + ( \. [ a - z A - Z ] { 2 , } ) ? $ / ;
37
+ return patronEmail . test ( email ) ;
38
+ }
39
+
40
+ /**
41
+ * 3. Función para validar un número de teléfono
42
+ * Acepta formatos:
43
+ * - 123-456-789
44
+ * - +34 611 222 333
45
+ */
46
+ function validarTelefono ( telefono ) {
47
+ const patronTelefono = / ^ ( \+ \d { 1 , 3 } \s ? ) ? ( \d { 3 } [ - \s ] ? ) { 2 } \d { 3 } $ / ;
48
+ return patronTelefono . test ( telefono ) ;
49
+ }
50
+
51
+ /**
52
+ * 4. Función para validar una URL
53
+ * Acepta URLs que:
54
+ * - Comienzan con http:// o https://
55
+ * - Pueden tener www. (opcional)
56
+ * - Tienen un dominio y una extensión válida
57
+ */
58
+ function validarURL ( url ) {
59
+ const patronURL = / ^ ( h t t p s ? : \/ \/ ) ( w w w \. ) ? [ \w - ] + ( \. [ a - z A - Z ] { 2 , } ) + $ / ;
60
+ return patronURL . test ( url ) ;
61
+ }
62
+
63
+ // Pruebas
64
+ console . log ( '\n=== PRUEBAS DE EXPRESIONES REGULARES ===' ) ;
65
+
66
+ // 1. Extraer números
67
+ extraerNumeros ( textoEjemplo ) ;
68
+
69
+ // 2. Validar emails
70
+ console . log ( '\n2. Validación de emails:' ) ;
71
+ const emails = [ '[email protected] ' , 'email_invalido.com' , '[email protected] ' ] ;
72
+ emails . forEach ( email => {
73
+ console . log ( `${ email } es válido:` , validarEmail ( email ) ) ;
74
+ } ) ;
75
+
76
+ // 3. Validar números de teléfono
77
+ console . log ( '\n3. Validación de números de teléfono:' ) ;
78
+ const telefonos = [ '123-456-789' , '+34 611 222 333' , '1234' , '999-999-999' ] ;
79
+ telefonos . forEach ( telefono => {
80
+ console . log ( `${ telefono } es válido:` , validarTelefono ( telefono ) ) ;
81
+ } ) ;
82
+
83
+ // 4. Validar URLs
84
+ console . log ( '\n4. Validación de URLs:' ) ;
85
+ const urls = [ 'https://www.ejemplo.com' , 'http://ejemplo' , 'https://dominio.es' ] ;
86
+ urls . forEach ( url => {
87
+ console . log ( `${ url } es válida:` , validarURL ( url ) ) ;
88
+ } ) ;
0 commit comments