2010-10-17 5 views
12

la chaîne ressemble à ceciJavascript/Jquery - Obtenez le numéro de chaîne

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

Comment puis-je obtenir le numéro juste après "amount-", et le texte juste après "direction-"?

+2

Fol baisser quelle règle? Extraire tous les nombres? Quel est le résultat souhaité, un tableau? –

+0

non, juste le nombre/chaîne après ces paramètres. la sortie devrait être une chaîne – Alex

Répondre

17

Il utilise regular expressions et 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]; 

Le code provoque une erreur si la quantité ou la direction est manquante; si cela est possible, vérifiez si le résultat de exec est non nul avant l'indexation dans le tableau qui doit être retourné.

+0

merci c'était ça :) – Alex

6

Vous pouvez utiliser regexp comme expliqué by w3schools. Indice:

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

Otherwize vous pouvez simplement vouloir tous les nombres, utilisez le motif [0-9] + seulement. str.match retournera un tableau.

+2

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

38

Cela obtenir tous les nombres séparés par le coma:

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

Après l'exécution, la chaîne matches auront des valeurs "10,11,9"

Si vous êtes à la recherche pour Thew première occurrence, le modèle sera /[0-9]+/ - qui retournera 10

(Il n'y a pas besoin de JQuery)

+0

C'est le moyen le plus efficace. Merci! –

Questions connexes