Hola, qué tal?
Mi problema es el siguiente. Tengo una aplicación en php que descompone unas estadisticas con expresiones regulares.
preg_match_all('#([0-9]{1,5}) ([0-9]{1,5}) (.*)#', $string, $hits);
$string contiene estos datos: 1100 51 "|-WDFH-| ^9Gonz"
En php funciona perfecto y el resultado es este.
$hits[3][0] = 1100
$hits[2][0] = 51
$hits[1][0] = "|-WDFH-| ^9Gonz"
Al pasarlo a javascript me quedó así:
var txt = '1100 51 "|-WDFH-| ^9Gonz"';
var matches = txt.match('#([0-9]{1,5}) ([0-9]{1,5}) (.*)#');
for (i in matches){
alert(i + ' : ' + matches[i]);
}
Pero cuando uso la consola de Google Chrome, me indica que matches = null.
Alguna solución?
Saludos, Sancho.Mazorka! :¬¬
necesitas crear una pattern las regexp van entre /regexp/
http://www.javascriptkit.com/javatutors/redev2.shtml
http://www.javascriptkit.com/javatutors/redev3.shtml
Cambié el pattern
var matches = txt.match('#([0-9]{1,5}) ([0-9]{1,5}) (.*)#');
por éste otro y funciono de 10, cuando le coloqué las "/ /" no funciono
var matches = txt.match('([0-9]{1,5}) ([0-9]{1,5}) (.*)');
Lo unico que hice fue remover los #.
Gracias!Saludos, Sancho.Mazorka! :¬¬
Muestra donde pusisteis los slash's
No hizo falta :S
var matches = txt.match('([0-9]{1,5}) ([0-9]{1,5}) (.*)');
var matches = txt.match(/([0-9]{1,5}) ([0-9]{1,5}) (.*)/);
Funciona bien, cualquiera de las 2.
Saludos, Sancho.Mazorka! :¬¬
No se, pero creo que es así...
var matches = txt.match('/([0-9]{1,5})([0-9]{1,5})(.*)/i');
Ya probe, ya lo solucione y por eso le cambie el nombre al thread. Funciona de ambas maneras...por lo menos en javascript, y por qué agregaste una
i al final del pattern.
Saludos, Sancho.Mazorka! :¬¬
i Insensitivo – no distingue mayúsculas de minúsculas
m Multilinea - ^ y $ indican el inicio y fin de cada linea
s Todo - el . (punto) captura todo, incluyendo nueva linea
x Extendido – comentarios & espacios
e Evaluar (preg_replace) – interpreta el reemplazo como código PHP
S Análisis extra del patron
U El patron es insatisfactorio
u El patron es tratado como UTF-8