2010-03-15 6 views
0
var exampleURL = '/example/url/345234/test/'; 
var numbersOnly = [?] 

Les parties /url/ et /test du chemin seront toujours les mêmes. Notez que j'ai besoin des chiffres entre /url/ et /test. Dans l'exemple de l'URL ci-dessus, l'exemple de l'espace réservé peut être des nombres de temps à autre, mais dans ce cas, il ne doit pas correspondre. Seuls les chiffres entre /url/ et /test.Extraire des nombres d'une URL en utilisant javascript?

Merci!

Répondre

6
var exampleURL = '/example/url/345234/test/'; 

// this will remove all non-numbers 
var numbers = exampleURL.replace(/[\D]/g, ''); 

// or you can split the string and take only that 3rd bit 
var numbers = exampleURL.split(/\//)[3]; 

// or match with a regex 
var numbers = exampleURL.match(/\/(\d+)\/test\//)[1]; 
1

regex qui fonctionnerait est

matches = exampleURL.match('/\/.+\/url/([0-9]+)\/test\//'); 

Je pense que ce droit.

4

Quelque chose le long de ces lignes:

var result; 
result = value.match(/\/url\/([0-9]+)\/test/); 
// use result[1] to get the numbers (the first capture group) 

qui repose sur les bits /url/ et /test, puisque vous avez dit qu'ils étaient fiables. De manière plus générale, cela correspond à la première série de chiffres dans la chaîne:

var result; 
result = value.match(/[0-9]+/); 
// use result[0] (not result[1]), which is the total match 

Le MDC page on regular expressions est très utile.

Remarque: Au lieu de [0-9] ci-dessus, vous pouvez utiliser \d qui signifie «chiffre». Je ne le fais pas parce que mon regex-fu est faible et je ne m'en souviendrai jamais (et quand je le fais, je ne me souviendrai jamais si c'est tous les chiffres ou tous les non-chiffres [c'est - vous voyez ma confusion]. [0-9] vraiment clair quand je l'ai lu plus tard. d'autres peuvent trouver \d plus claire, mais pour moi, j'aime la ness explicite de la liste de la gamme.

Questions connexes