Actualizado el 21 de Marzo del 2018 (Publicado el 20 de Enero del 2018)
864 visualizaciones desde el 20 de Enero del 2018
59,3 KB
6 paginas
Creado hace 10a (29/06/2014)
Paréntesis en expresiones regulares JavaScript. Flags. Métodos.
PARÉNTESIS EN
EXPRESIONES REGULARES
JAVASCRIPT. FLAGS.
MÉTODOS EXEC, TEST,
MATCH, SEARCH,
REPLACE, SPLIT.
EJEMPLOS (CU01155E)
APRENDERAPROGRAMAR.COM
Sección: Cursos
Categoría: Tutorial básico del programador web: JavaScript desde cero
Fecha revisión: 2029
Resumen: Entrega nº55 del Tutorial básico “JavaScript desde cero”.
© aprenderaprogramar.com, 2006-2029
Autor: César Krall
Paréntesis e
PARÉNTE
en expresiones
s regulares Java
aScript. Flags. M
Métodos.
SIS Y FLAGS
EN EXPRESIO
ONES REGUL
LARES
esiones reg
as diversos.
s especiales
ulares JavaS
Ya conocem
disponibles.
Script son
mos aspectos
Vamos a am
una potent
s básicos co
mpliar conoc
te herramie
omo la insta
imientos sob
nta que no
nciación de
bre expresion
á resolver
os permitirá
objetos Reg
gExp y los
es.
nes regulare
Las expre
problema
caractere
EXPRESIO
ONES REGULA
ARES CON FL
LAGS
JavaScript
denomina
t permite e
a flags (band
especificar m
eras o indica
modos de b
adores).
búsqueda de
e expresione
es regulares
s a través d
de lo que
Los flags s
se indican en
n el moment
o de definir
la expresión
regular:
a) Si se de
efine en form
ma de literal:
var miExpre
esionRegular
r = /as?.a/fla
gsAIncluir
b) Instanc
ciando el obj
eto RegExp:
var miExpre
esionRegular
= new RegE
xp("as?.a", "
" flagsAInclu
ir")
En la sigu
iente tabla s
e indican los
s principales
flags, cómo
usarlos y eje
emplos.
Flag
g
Significado
Ejempl
lo sintaxis
/as?.a/g
g
egExp("as?.a",
new Re
"g")
i
/as?.a/i
new Re
egExp("as?.a",
"i")
/as?.a/m
m
new Re
egExp("as?.a",
"m")
var miE
Indica
comien
mayúsc
diferen
que hará
mi
ExpReg = /^i/m
match con
por una i min
eda multilíne
las y minúscu
nzo de línea p
cula
(búsque
ciar mayúscu
cualquier
núscula ó I
ea y sin
las).
g
i
m
Bús
(no
coin
squeda globa
o se detiene
ncidencia)
al de todas l
e al encont
as coincidenc
la prim
trar
cias
era
No
diferenciar en
ntre mayúscu
las y minúscu
ulas
Bús
com
apl
ma
líne
squeda multil
mienzo de cad
ica esta ban
tches en tod
ea, no sólo al p
ínea. Para los
dena ^ y fin d
ndera, se tie
os los princip
principio y fin
s indicadores
e cadena $, s
enen en cue
pios y finales
al de cadena.
de
i se
nta
de
pueden espec
cificar varios f
flags
Combinac
ciones
Se
© aprender
raprogramar.co
om, 2006-2029
Paréntesis en expresiones regulares JavaScript. Flags. Métodos.
MÉTODOS DE LOS OBJETOS TIPO EXPRESIÓN REGULAR
Los objetos de tipo expresión regular proveen de una serie de métodos útiles. En la siguiente tabla
vemos cuáles son, su significado y un ejemplo de uso.
Método
Significado
Ejemplo de uso
exec
Ejecuta una búsqueda del patrón y
devuelve un array cuyo
índice 0
contiene el valor encontrado. Si está
activado el flag g, la repetición de la
búsqueda devuelve
siguiente
coincidencia.
la
test
Comprueba si se verifica el patrón y
devuelve true o false
var miExpReg = /p.sto/g
var txt = 'el pasto es pisto pero no pesto';
msg = '';
while ((matches = miExpReg.exec(txt)) !== null ) {
msg = msg + 'Encontrado: '+matches[0]+'\n'; }
alert(msg);
var miExpReg = /p.sto/g
var txt = 'el pasto es pisto pero no pesto';
msg = '';
alert('Hay match: '+ miExpReg.test(txt));
MÉTODOS DE LOS OBJETOS STRING RELACIONADOS CON EXPRESIONES REGULARES
Los objetos de tipo String proveen de una serie de métodos útiles. En la siguiente tabla vemos cuáles
son, su significado y un ejemplo de uso.
Método
Signficado
Ejemplo de uso
match
Devuelve un array con las
coincidencias encontradas, o null si
no hay coincidencias.
search
Devuelve la posición de comienzo de
la primera coincidencia dentro del
string, o -1 si no hay coincidencia.
Recordar que la primera posición
posible es cero.
replace
Devuelve un nuevo String (sin
modificar el original) donde se
reemplaza una o varias coincidencias
por lo especificado (una cadena o
una función que devuelve la cadena).
© aprenderaprogramar.com, 2006-2029
var miExpReg = /p.sto/g
var txt = 'el pasto es pisto pero no pesto';
msg = ''; var matches = txt.match(miExpReg);
if (matches != null) {
for (var i=0; i<matches.length; i++){
msg = msg + 'Encontrado: '+matches[i]+'\n'; }
} else {msg = 'No se encontraron coincidencias';}
alert(msg);
var miExpReg = /p.sto/g
var txt = 'el pasto es pisto pero no pesto';
msg = ''; var posicion = txt.search(miExpReg);
if (posicion != -1) {
msg = msg +
'Encontrado patrón en posición:
'+posicion+'\n';
} else {msg = 'No se encontraron coincidencias';}
alert(msg);
var miExpReg = /p.sto/g
var txt = 'el pasto es pisto pero no pesto';
msg = ''; var nuevoTxt = txt.replace(miExpReg, 'coco');
msg = 'txt vale ' + txt + ' y nuevoTxt vale ' +nuevoTxt;
alert(msg);
Paréntesis en expresiones regulares JavaScript. Flags. Métodos.
Método
Signficado
Ejemplo de uso
Devuelve un array con las
subcadenas resultantes de dividir la
cadena original en subcadenas
delimitadas por el carácter separador
especificado (que queda excluido). Si
se indican unas comillas vacías se
extraen todos los caracteres a un
array.
var miExpReg = /\d/g
var txt = 'un 3 de bastos gana a un 5 de copas pero no
a un 7 de oros';
msg = ''; var splits = txt.split(miExpReg);
msg = 'splits contiene ' + splits;
alert(msg);
split
USAR PARÉNTESIS PARA AGRUPAR FRAGMENTOS
Los paréntesis sirven para agrupar varios caracteres y afectarlos por un carácter especial.
Por ejemplo var miExpReg = /(p.s)?to/g
var txt = 'el pasto es pisto y eso es todo';
var resultado = txt.match(miExpReg);
Hace que resultado contenga ['pasto ', 'pisto ', 'to '] ya que hay un fragmento de la expresión que se ha
agrupado e indicado que es opcional.
Los paréntesis nos permiten no tener que repetir. Por ejemplo en vez de /estereotipo|estereoforma/
podemos escribir /estereo(tipo|forma).
USAR PARÉNTESIS PARA IDENTIFICAR SUBEXPRESIONES CON MATCH
Los paréntesis generan otro efecto. Cuando se invoca la función match buscando la primera
coincidencia (es decir, búsqueda no generalizada sin el flag g) y existen subexpresiones entre
paréntesis, el array generado guarda en su índice cero la primera coincidencia mientras que en los
sucesivos índices guarda las coincidencias de las subexpresiones.
Cuando se escribe una expresión regular, los elementos que se incluyen entre paréntesis pueden ser
recuperados por separado
luego como $1, $2, $3…. Estas variables persisten
normalmente hasta que se invoca una nueva expresión regular.
invocándolos
Veámoslo con un ejemplo:
<!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">
<script type="text/javascript">
function ejemplo() {
var expReg = /(\w+)\s(\w+)\s(\w+)/;
© aprenderaprogramar.com, 2006-2029
Paréntesis en expresiones regulares JavaScript. Flags. Métodos.
var txt = "Era una noche negra y sola";
var newTxt = txt.match(expReg);
console.log(newTxt); //Activar la consola para que se visualice
var cambiada = newTxt[0].replace(newTxt[3], 'madrugada');
console.log(cambiada); //Activar la consola para que se visualice
}
</script>
</head>
<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>
<div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div>
</body></html>
El resultado esperado es:
Array [ "Era una noche", "Era", "una", "noche" ]
"Era una madrugada"
Analicemos lo que hace el código: en el array newTxt queda almacenado en su posición cero la
coincidencia global con la expresión regular. En su índice uno, queda almacenado el match de la
primera subexpresión entre paréntesis, es decir, la primera palabra (sin tildes). En su índice dos, la
segunda palabra, y en su índice 3, la tercera palabra. A continuación creamos una cadena formada por
las tres palabras con la tercera de ellas reemplazada por ‘madrugada’.
USAR PARÉNTESIS PARA IDENTIFICAR SUBEXPRESIONES CON REPLACE
Dentro de una sentencia replace, los matches de subexpresiones entre paréntesis pueden ser invocadas
usando unas variables temporales especiales que se numeran como $1, $2, $3… etc. de acuerdo con la
cantidad de subexpresiones entre paréntesis que existan. Este ejemplo nos muestra cómo se pueden
usar:
<!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">
<script type="text/javascript">
function ejemplo() {
var expReg = /(\w+)\s(\w+)\s(\w+)/;
var txt = "Alberto Flores Rubalcaba: tiene calificación de 10";
var cambiada = txt.replace(expReg, '$3 $2, $1');
console.log(cambiada); //Activar la consola para que se visualice
}
</script>
</head>
<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>
<div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div>
</body></html>
© aprenderaprogramar.com, 2006-2029
Paréntesis en expresiones regulares JavaScript. Flags. Métodos.
En este ejemplo el match de la expresión regular es <<Alberto Flores Rubalcaba>>, y cada palabra es
una subexpresión por encontrarse entre paréntesis en la expresión regular. En el replace podemos
identificar cada subexpresión como $1 (primera subexpresión), $2 (segunda) y $3 (tercera).
En el replace indicamos que la coincidencia de la expresión
Comentarios de: Paréntesis expresiones regulares javascript flags exec match search (0)
No hay comentarios