Hola.
EJERCICIO
Dada la expresión regular de JavaScript /^[A-C]\w+\ses\s\w+/ indicar cuáles de las siguientes cadenas hacen match con la expresión regular, y en caso de hacer match, qué parte o partes son las que hacen match:
a) Juan es guapo
b) Adriano no es feo
c) Adriano deja de ser guapo
d) Adriano ya es guapo
e) No es ahora
f) Ahora es no
g) Adriano es guapo
Este es el código para hacer las comprobaciones.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
.pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
</style>
<script type="text/javascript">
function ejemplo() {
var miExpReg = /^[A-C]\w+\ses\s\w+/
var msg = 'Patrón: /^[A-C]\\w+\\ses\\s\\w+/ \n';
msg = msg + '¿Contiene "Juan es guapo" el patrón? : '+ miExpReg.test('Juan es guapo') +'\n';
msg = msg + '¿Contiene "Adriano no es feo" el patrón? : '+ miExpReg.test('Adriano no es feo') +'\n';
msg = msg + '¿Contiene "Adriano deja de ser guapo" el patrón? : '+ miExpReg.test('Adriano deja de ser guapo') +'\n';
msg = msg + '¿Contiene "Adriano es guapo" el patrón? : '+ miExpReg.test('Adriano es guapo') +'\n';
msg = msg + '¿Contiene "No es ahora" el patrón? : '+ miExpReg.test('No es ahora') +'\n';
msg = msg + '¿Contiene "Ahora es no" el patrón? : '+ miExpReg.test('Ahora es no') +'\n';
msg = msg + '¿Contiene "Adriano es guapo" el patrón? : '+ miExpReg.test('Adriano es guapo') +'\n';
alert(msg);
}
</script>
</head>
<body>
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>
<div class ="pulsador" onclick="ejemplo()"> Probar </div>
</body>
</html>
No acabo de entender completamente la expresión /^[A-C]\w+\ses\s\w+/
^[A-C], cadenas que empiecen por A,B oC
\ses\s, cadenas que contengan " es ".
\w haría match con cualquier letra mayúscula, minúscula, número o guión bajo, según dice la explicación, pero al añadirle el +, no consigo entender el significado.
Edito:
Creo que conseguí entender el significado, lo que no se es si conseguiré explicarlo bien.
Se hará match en cadenas de texto que empiecen por A,B o C, que continúen con cualquier letra mayúscula, minúscula, número o guión bajo, después contengan " es " y continúen con cualquier letra mayúscula, minúscula, número o guión bajo.
Por eso las expresiones, "Adriano es guapo" y "Ahora es no" devuelven true.
.