Как я могу получить числа из этой строки? - PullRequest
2 голосов
/ 18 июля 2011

У меня есть эта строка:

var s = 'http://xxxxxxx.xxx/abcd123456789?abc=1';

как получить цифры 123456789 (между "d" и "?")?

эти цифры могут отличаться.количество цифр также может варьироваться.

Как мне их получить ??Regex?Какой?

Ответы [ 4 ]

5 голосов
/ 18 июля 2011

попробуй

'http://xxxxxxx.xxx/abcd123456789?abc=1'.match(/\d+(?=\?)/)[0];
 //                                             ^1 or more digits followed by '?'
1 голос
/ 18 июля 2011

Попробуйте

var regexp = /\/abcd(\d+)\?/;
var match = regexp.exec(input);
var number = +match[1];
0 голосов
/ 18 июля 2011

Да, регулярное выражение - правильный ответ.У вас будет что-то вроде этого:

var s = 'http://xxxxxxx.xxx/abcd123456789?abc=1';
var re = new RegExp('http\:\/\/[^\/]+\/[^\d]*(\d+)\?');
re.exec(s);
var digits = $1;
0 голосов
/ 18 июля 2011

Всегда ли числа между "abcd" и "?"?

Если это так, то вы можете использовать substring () :

s.substring(s.indexOf('abcd'), s.indexOf('?'))

Если нет, то вы можете просто перебрать символ за символом и проверить, является ли он числовым:

var num = '';

for (var i = 0; i < s.length; i++) {
  var char = s.charAt(i);
  if (!isNaN(char)) {
    num += char;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...