the string looks like this
"blabla blabla-5 amount-10 blabla direction-left"
How can I get the number just after "amount-", and the text just after "direction-" ?
-
2Following what rule? Extract all numbers? What is the desired outcome, an array?Pekka– Pekka2010年10月17日 21:20:54 +00:00Commented Oct 17, 2010 at 21:20
-
no, just the number/string after those parameters. output should be a stringAlex– Alex2010年10月17日 21:38:33 +00:00Commented Oct 17, 2010 at 21:38
3 Answers 3
This will get all the numbers separated by coma:
var str = "10 is smaller than 11 but greater then 9"; var pattern = /[0-9]+/g; var matches = str.match(pattern);
After execution, the string matches will have values "10,11,9"
If You are just looking for thew first occurrence, the pattern will be /[0-9]+/ - which will return 10
(There is no need for JQuery)
Comments
This uses regular expressions and the 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];
The code will cause an error if the amount or direction is missing; if this is possible, check if the result of exec is non-null before indexing into the array that should be returned.
Comments
You can use regexp as explained by w3schools. Hint:
str = "blabla blabla-5 amount-10 blabla direction-left"
alert(str.match(/amount-([0-9]+)/));
Otherwize you can simply want all numbers so use the pattern [0-9]+ only. str.match would return an array.