我如何从这个字符串中获取数字?

时间:2011-07-18 13:12:40

标签: javascript string

我有这个字符串:

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

我如何获得数字123456789(在“d”和“?”之间)?

这些数字可能会有所不同。数字位数也可能不同。

我如何得到它们?正则表达式?哪一个?

4 个答案:

答案 0 :(得分:5)

尝试

'http://xxxxxxx.xxx/abcd123456789?abc=1'.match(/\d+(?=\?)/)[0];
 //                                             ^1 or more digits followed by '?'

答案 1 :(得分:1)

尝试

var regexp = /\/abcd(\d+)\?/;
var match = regexp.exec(input);
var number = +match[1];

答案 2 :(得分:0)

数字是否始终在“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;
  }
}

答案 3 :(得分:0)

是的,正则表达式是正确的答案。你会有这样的事情:

var s = 'http://xxxxxxx.xxx/abcd123456789?abc=1';
var re = new RegExp('http\:\/\/[^\/]+\/[^\d]*(\d+)\?');
re.exec(s);
var digits = $1;