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

/url/ и /test части пути всегда будут одинаковыми.Извлечение чисел из URL с помощью javascript?

Обратите внимание, что мне нужны цифры между /url/ и /test. В приведенном выше примере URL пример слова-заполнителя может быть числом тоже время от времени, но в этом случае его не следует сопоставлять. Только цифры между /url/ и /test.

Спасибо!

ответ

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

регулярное выражение, которое будет работать в

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

Я думаю, что это правильно.

4

Что-то вдоль этих линий:

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

Это полагается на /url/ и /test бит, так как вы сказали, что они были надежными. В целом, это будет соответствовать первый пробег цифр в строке:

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

MDC page on regular expressions очень полезно.

Примечание: вместо [0-9] выше, вы можете использовать \d, что означает «цифра». Я не потому, что мой regex-fu слаб, и я никогда не могу его запомнить (и когда я это делаю, я не могу вспомнить, все ли это цифры или все не-цифры (это \D - вы видите мое замешательство]. [0-9] очень ясно, когда я прочитал его позже. Другие могут найти \d понятнее, но для меня, мне нравится явная-ность перечисления диапазона.

Смежные вопросы