2010-10-17 9 views
12

la cadena se parece a estoJavascript/jQuery - Obtener el número de secuencia

"blabla blabla-5 amount-10 blabla direction-left" 

¿Cómo puedo obtener el número justo después "amount-", y el texto justo después de "direction-"?

+2

Fol ¿Bajando qué regla? Extrae todos los números? ¿Cuál es el resultado deseado, una matriz? –

+0

no, solo el número/cadena después de esos parámetros. La salida debe ser una cadena – Alex

Respuesta

17

Esto utiliza regular expressions y la exec method:

var s = "blabla blabla-5 amount-10 blabla direction-left"; 
var amount = parseInt(/amount-(\d+)/.exec(s)[1], 10); 
var direction = /direction-([^\s]+)/.exec(s)[1]; 

El código se producirá un error si la cantidad o dirección no se encuentra; si esto es posible, verifique si el resultado de exec no es nulo antes de indexar en la matriz que debe devolverse.

+0

gracias, eso fue :) – Alex

6

Puede usar regexp como se explica by w3schools. Sugerencia:

str = "blabla blabla-5 amount-10 blabla direction-left" 
alert(str.match(/amount-([0-9]+)/)); 

Otherwize simplemente puede querer todos los números así que utilice el patrón [0-9] + solamente. str.match devolvería una matriz.

+2

Uh-oh http://w3fools.com/ –

38

Esto hará que todos los números separados por coma:

 
var str = "10 is smaller than 11 but greater then 9"; 
var pattern = /[0-9]+/g; 
var matches = str.match(pattern); 

Después de la ejecución, la cadena matches tendrán valores "10,11,9"

Si estás en busca de Thew primera aparición, el patrón será /[0-9]+/ - que devolverá 10

(no hay necesidad de JQuery)

+0

Esta es la forma más eficiente. ¡Gracias! –

Cuestiones relacionadas