Patrón de expresión regular simple, extraer números

Me gustaría extraer el (los) número (s) de entre los corchetes en una cadena como esta:

"Item5Line[14].Id"

Lo que tengo hasta ahora causa un error en Javascript:

index = Id.attr('name').match(/\[\d\d?\d?\]);

Soy muy nuevo en las expresiones regulares, así que sea amable :)

Gracias de antemano!

preguntado el 16 de mayo de 11 a las 17:05

3 Respuestas

Tratar: index = Id.attr('name').match(/\[(\d+)\]/);

Luego, puede sacar el fósforo en el índice 1.

contestado el 16 de mayo de 11 a las 21:05

Gracias Josh. Me estaba perdiendo (como todos los mencionados a continuación) el cierre "/". Y esta expresión es, por supuesto, más limpia. ¡Aprecio la ayuda! - Ben Finkel

developer.mozilla.org/en/JavaScript/Reference/Global_Objects/… cubre regexp. También puede querer ver el objeto String (match ()). En caso de que no se haya dado cuenta del uso de (), cuando obtenga su valor de "índice", en realidad es una matriz. Los elementos de la matriz coinciden, en orden de pares izquierdos, con los pares de paréntesis incrustados dentro de la expresión regular. Así que el índice [0] da la coincidencia completa como una cadena y el índice [1] da la cadena que consta de la parte capturada entre paréntesis (es decir, "14"). pruebe la URL: javascript: index = / hell (owo) rld / .exec ("helloworld"); alerta (índice [1]); - Jose_X

Parece que te falta el cierre. / en tu expresión regular

index = Id.attr('name').match(/\[\d\d?\d?\]/);
                                           ^ need this closing /

Muestra de trabajo: http://jsfiddle.net/CGnUz/

Además, @Josh M. tiene una mejor expresión regular.

contestado el 16 de mayo de 11 a las 21:05

index = Id.attr('name').match(/\[\d\d?\d?\]);

Olvidó agregar la / al final.

contestado el 16 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.